ORACLE 还原(迁移)数据

来源:互联网 发布:ipadair网络不稳定 编辑:程序博客网 时间:2024/05/16 01:01
当你备份了一个数据之后如何还原?如果是使用EM备份的,你只要拷贝出备份文件然后根据提示来在你想要还原数据的主机上,再次使用EM来恢复备份就行了。

这里重点记录一下从远程数据备份如何导入到本地ORACLE数据库。

接续备份数据的部分,使用软件导出生成SQL语句的文件之后,我们得到的是一个含有所有数据的SQL插入语句的文件,理论上我们直接执行这个文件里所有的SQL语句就行了。这里有两种办法,一种是使用之前那个数据库通用管理软件,里面执行SQL语句比较方便,一目了然;如果懒得下软件,也可以使用ORACLE自带的SQLPLUS,这个是专门执行SQL语句用的。

这里主要说一下SQLPLUS如何根据SQL文件来恢复数据表。

首先当然是登录,当你打开SQLPLUS的时候就会弹出一个输入框,这个输入框的username password大家都会填,但是第三个空 HOST STRING,可能就不知道填什么了。其实很简单,就写 ORCL as SYSDBA 。就是相对于EM中的 以SYSDBA身份连接。当然这里说的是用户名只写SYS的情况。如果你使用其它用户名登录,这里也可以只写ORCL。

登录成功之后会有一个 SQL> 这样的一个输入提示。在这后面可以输入任意SQL语句。我们要做的就是把之前备份的SQL文件打开,把里面的所有SQL语句全部复制然后粘贴进来执行。需要注意的是,SQL文件中的数据表名称是带有用户名的,如果我们本机没有这个用户,是无法执行成功的,这时只要使用替换功能,删除SQL文件中的用户名就行了。

如果只是数据的更新或者恢复,处理起来都很简单,这样的步骤就行了。但是如果涉及到数据表的迁移,也就是本机本身没有这个数据表,而要新建一个跟远程数据表一样的表,这个就比较麻烦。因为你不能直接执行CREATE TABLE命令,而是首先需要创建表空间。

创建表空间——创建表——创建索引——插入数据。这样的一个步骤。

创建表空间当然也有相应的SQL命令,不过我们不太熟,所以还是使用EM来管理。

特别需要注意的是,你登录EM要使用SYSDBA的方式连接,而不能使用SYSOPA。否则权限不足,无法创建表文件,也看不到权限外的内容。

具体功能位置在EM的 管理--存储--表空间,点击进入,然后点 创建,根据提示创建一个跟SQL文件中一样名称的空间。这个一样名称,你在直接粘贴CREATE TABLE 的SQL语句的时候,SQLPLUS也会提示给你“表空间 XXXXX 不存在”【当然是英文,大概是这个意思】。

名称里粘贴进SQLPLUS提示的表空间名称,然后下面的 数据文件 后面点添加,指定一个文件名和文件目录,根据需要配置一下其余的项目,也可以直接点击 继续。需要注意的是这个目录最好是已经存在的,我很怀疑ORACLE会不会自动创建目录。

点击继续之后点击确定,应该没有任何奇怪的提示,显示表空间列表中有了你的表空间,就正常了。然后登录NAVICATION,在连接名上右键--
execute SQL File,运行SQL文件,选择备份的时候导出的SQL文件。
连insert 语句也全部正常执行之后,数据表恢复——或者准确的说应该叫数据表迁移,应该已经算是完成了。
0 0
原创粉丝点击