逻辑备份实现:
与物理备份不同,在执行逻辑备份与恢复时,必须在数据库运行状态下进行。当数据库发生故障无法启动时,不能使用逻辑备份恢复数据库。
创建目录:
使用数据泵工具时,其转储文件只能被存放在目录对象对应的操作系统目录中,而不能直接指定转储文件所在的操作系统目录。因此,必须先建立目录对象,并且需要为数据库用户授予使用目录对象的权限。
在操作系统目录中创建目录,最好以管理员的身份创建。
SQL>connect sys/密码 as sysdba
创建逻辑目录,该命令不会在操作系统创建真正的目录。
SQL>create directory <dir_name> as 'D:\dump_dir' --dir_name指创建的目录对象
给用户赋予在指定目录操作的权限
SQL>grant read, write on directory <dir_name> to user_name;
给用户赋予导入/导出非同名模式对象的权限。
SQL>grant exp_full_database, imp_full_database to user_name;
Data Pump导出数据:
EXPDP的五种导出模式:
1、全库导出模式(Full Export Mode):利用参数FULL导出整个数据库。如果需要,可以用这种方式重建数据库。
EXPDP 用户名/密码 DIRECTORY=<dir_name> DUMPFILE=<fulldb.dmp> FULL=y
2、用户导出模式(Schema Mode):默认的导出模式,可以导出数据库中一个或多个用户的对象。可以使用参数SCHEMAS指定用户名,导出指定用户的所有对象。
EXPDP 用户名/密码 DIRECTORY=<dir_name> DUMPFILE=<user.dmp> SCHEMAS=user_name1,user_name2
3、表导出模式(Table Mode):由参数TABLES指定所要导出的表。
EXPDP 用户名/密码 DIRECTORY=<dir_name> DUMPFILE=<table.dmp> TABLES=TABLE1,TABLE2
4、表空间导出模式(TableSpaces Mode):使用TABLESPACES指定要导出表空间的名字,可以把该表空间的所有对象导出。
EXPDP DIRECTORY=<dir_name> DUMPFILE=<tablespaces.dmp> TABLESPACES=tbs1,tbs2
5、传输表空间导出模式(Transportable Tablespace Mode):可移动表空间导出模式,使用Transportable Tablespace Mode参数指定要导出的表空间。与表空间导出模式不同,该模式只导出给定表空间集的元数据,不真正导出数据。
EXPDP 用户名/密码 DIRECTORY=<dir_name> DUMPFILE=<transtbs.dmp> TRANSPORT_TABLESPACES=tbs1 TRANSPORT_FULL_CHECK=y LOGFILE=tts.log
DATA DUMP导入数据:
IMPDP的五种导入模式:
1、全库导入模式(Full Import Mode):可以使用这种方式重建数据库。用元转储文件或Network_link导出的元数据库进行导入操作。
IMPDP 用户名/密码 DIRECTORY=<dir_name> DUMPFILE=<fulldb.dmp> FULL=y
2、用户导入模式(Schema Import Mode):默认的导入方式。可以导入一个或者多个用户的数据。
IMPDP 用户名/密码 DIRECTORY=<dir_name> DUMPFILE=<user.dmp> SCHEMAS=user_name,xx
3、表导入模式(Table Import Mode):可以导入表或分区及相关对象。如果要导入与操作用户不同方案下的表,必须有imp_full_database权限。
IMPDP 用户名/密码 DIRECTORY=<dir_name> DUMPFILE=<tables.dmp> TABLES=tb1,tb2
4、表空间导入模式(Tablespace Import Mode):可以加载在给定的表空间集中创建的所有表。
IMPDP 用户名/密码 DIRECTORY=<dir_name> DUMPFILE=<tbs.dmp> TABLESPACES=tbs1
5、传输表空间导入模式(Transportable Tablespace Mode):与表空间导入模式不同,只把元数据从给定的表空间导入到数据库中,需要把数据文件复制到元数据指定的正确位置。
IMPDP 用户名/密码 DIRECTORY=<dir_name> NETWORK_LINK=<source_dblink> TRANSPORT_TABLESPACES=用户名 TRANSPORT_FULL_CHECK=n TRANSPORT_DATAFILES=<datafile>
下面对参数进行说明:
NETWORK_LINK:要导如数据的远程目标数据库的链接。
TRANSPORT_TABLESPACES:执行导入操作的源表空间。
TRANSPORT_FULL_CHECK:用来指定是否进行导出表空间中的对象与非导出表空间中的对象之间依赖关系的检查。
TRANSPORT_DATAFILES:被导出的数据文件的路径。