1. 逻辑备份还原简介
DM数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。
物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。
逻辑导出(dexp)和逻辑导入(dimp)是DM数据库的两个命令行工具,分别用来实现对DM数据库的逻辑备份和逻辑还原。
逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
数据库级(FULL):导出或导入整个数据库中的所有对象。
用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
表级(TABLES):导出或导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。
2. dexp工具使用
dexp工具名称有两种写法dexp和dexpdp。两者语法完全相同。唯一的区别在于,dexp导出的文件必须存放在客户端,dexpdp导出的文件必须存放在服务器端。
该工具在DM安装目录/bin下。启动方法如下(参数之间使用空格间隔):
dexp PARAMETER=<value>{ PARAMETER=<value> }
dexpdp PARAMETER=<value>{ PARAMETER=<value> }
2.1 dexp最常用的参数
2.1.1 USERID
用于指定数据库的连接信息。dexp中唯一的一个必选参数。
{
{<username>[/<password>]} | /} [@<connect_identifier>] [<option>] [<os_auth>]
<connect_identifier> ::=<svc_name> | {<host>[:<port>]} | <unixsocket_file>
<option>::= #{<exetend_option>=<value>{,<extend_option>=<value>} } --此行外层{}是为了封装参数之用,书写时需要保留
<os_auth>::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
{ {<username>[/<password>]} | /}:
/表示采用操作系统身份验证方式登录,此时无需指定用户名和密码,即使指定也会被忽略。
密码中含有/,@.:等特殊字符时,需要外加三层双引号("""""")进行转义:
下面使用一个例子进行解析。例如:密码为 aaa/aaa
首先,dexp要求对含有特殊字符的密码内部进行转义(外加一层双引号),写成"aaa/aaa"。
其次,要将转义后的内容作为一个整体传给dexp(外加一层双引号),写成""aaa/aaa""。
最后,整个内容需要作为一个整体传给操作系统(外加一层双引号),因此写成"""aaa/aaa"""。
这里的密码转义规则在linux和windows上是否有区别还待验证
<unixsocket_file>:
专门用于在LINUX系统中,当服务器与客户端之间使用UNIXSOCETUNIX-IPC方式通信时,指定客户端连接的UNIXSOCKET路径文件名。必须和inet_type=UNIXSOCKET同时使用。
例如:
./dexp SYSDBA/SYSDBA@/home/test/foo.sock