【问题标题】:Oracle Backup Database with sqlplus it's possible?Oracle Backup Database with sqlplus 可以吗?
【发布时间】:2010-10-13 21:09:13
【问题描述】:

我需要对数据库进行一些结构更改(更改表、添加新列、更改一些行等),但我需要确保如果出现问题,我可以回滚到初始状态:

  • 所有需要的更改都在一个 SQL 脚本文件中。
  • 我没有对数据库的管理访问权限。
  • 我确实需要确保在服务器端完成备份,因为 BD 有超过 30 GB 的数据。
  • 我需要使用 sqlplus(在通过 vpn 的 ssh 专用会话下)
  • 不能使用“闪回数据库”!它已关闭,我无法停止数据库。

我真的很深$#$%吗?

任何想法如何使用 sqlplus 备份数据库并将备份保留在 db 服务器上?

【问题讨论】:

  • 如果您没有管理员权限,则无法使用 RMAN。

标签: database oracle backup sqlplus


【解决方案1】:

另一种方法可能是创建一个包含修改后的结构和数据的新架构,并使用它进行实际测试。这假设您的数据库服务器上有足够的空间来保存所有测试数据。在将更改转储到生产环境之前,您确实应该非常清楚您的更改将起作用。

我不会使用 sqlplus 来执行此操作。看看出口/进口。导出实用程序将获取数据库的定义和数据(可以在读取一致模式下完成)。导入实用程序将读取此文件并从中创建数据库结构。但是,访问这些实用程序确实需要授予权限,特别是如果您需要备份整个数据库,而不仅仅是一个架构。

也就是说,您需要在没有管理权限的情况下执行 DBA 的任务(更改表、备份数据库等),这有点令人不安。我想我至少会在开始之前寻求 DBA 的帮助来监督您的方法,如果不是坚持 DBA(或具有适当特权和知识的人)实际执行对数据库的修改并在必要时帮助恢复。

【讨论】:

    【解决方案2】:

    试图通过 sqlplus 备份 30GB 的数据是疯狂的,这需要几个小时才能完成,并且需要 3 到 5 倍的磁盘空间,并且如果不进行更多测试可能无法恢复。

    你需要使用 exp 和 imp。这些是旨在备份和恢复数据库的命令行工具。它们是命令行工具,如果您可以通过 ssh 访问 sqlplus,则可以访问 imp/exp。您不需要管理员权限即可使用它们。他们将为您有权访问的用户转储数据库(以及所有表、触发器、视图、过程)。

    【讨论】:

    • 似乎是我正在寻找的一个好方法。谢谢 :)
    【解决方案3】:

    比 exp/imp 更好,你应该使用 rman。它是专门为此目的而构建的,它可以进行热备份/恢复,如果你完全搞砸了,你仍然可以。

    一个“问题”是您也必须备份 $ORACLE_HOME 目录(根据我的经验),因为您需要本地存储的信息来恢复控制文件。

    在 google 上搜索 rman 会在第一页上提供一些非常好的信息。

    【讨论】:

    • rman 需要系统或系统登录才能创建目录以进行备份。但是,考虑到 DBA 访问权限,rman 比 imp/exp 或 datapump 好得多。
    • 我假设如果有人必须进行备份,他们就有这些权限。否则,它们从一开始就束手无策,不可能有效。
    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多