参数使用说明

对于所有的参数,有的为默认值输入,有的没有默认值,必须自己输入。另外参数的输入不区分大小写。

参数命令调用格式:

osrexp Connetion-Parameter Dumplevel-Parameter General-Parameter

1、连接参数(Connetion-Parameter)

-hhost

指定服务器运行的机器的主机名;

-pport

指定TCP端口或者服务器监听连接的本地UNIX域名socket文件扩展。默认为2003

-k

指定以操作系统用户登录备份。

-uusername/password

连接到指定的用户。

-ddatabase

指定连接数据库。

-susername/password

连接到指定的安全管理员,指定该参数将备份安全策略的对象信息。

2、备份级别参数(Dumplevel-Parameter)

指定备份级别,可指定的dump级别为:full、schema、table三种级别, 不同级别下操作权限均不同。调用格式为:level=full;或level=schema schema=(schema1,schema2,…);或level=table table=(table1,table2,…)。

(1)全库级别:

level=full

在默认情况下,level=full,指出导出条件为全库导出,备份当前连接数据库;需要有导出全库的角色权限。

举例:

osrexp -usysdba/szoscar55 -hlocalhost -p2003 -dosrdb level=full
file=d:/backup log=d:/bk.log mode=entirety ignore=false view=true
sequence=true procedure=true constraint=true trigger=true index=true

(2)模式级别:

level = schema

schema=(schema1,shcema2,…)

指出导出条件为模式级别导出,并且指定模式名以导出备份,设置模式名参数列表,必须精确定位模式,不可模糊匹配。调用格式为schema=(schema1,schame2, ...),在指定的模式名如果还有特殊字符,请参照对表名含有特殊字符的处理。

举例:

osrexp -usysdba/szoscar55 -hlocalhost -p2003 -dosrdb level=schema
file=d:/backup log=d:/bk.log mode=entirety ignore=false
schema=(sysdba,public) excludetable=(public.test,sysdba.test) view=true
sequence=true procedure=true constraint=true trigger=true index=true

(3)表级别:

level = table

table=(table1, table2,…)

举例:

osrexp -usysdba/szoscar55 -hlocalhost -p2003 -dosrdb level=table
file=d:/backup log=d:/bk.log mode=entirety ignore=false
table=(messagebord.test,sysdba.test) view=false procedure=false
sequence=false constraint=true trigger=true index=true

single=true|false

指定导出为表模式导出,并设置导出的表名列表参数。 Single只有在表名含有%字符时有效,下面会将会介绍他的用法。

在指定表名的时候注意以下几点:

在指定导出的表名时,表级别备份时必须输入完整的表名, 如想要备份sysdba模式下的表a,则表的完整名称为sysdba.a, 表名可以包含字符'%'用于部分匹配,搜索数据库包含模糊匹配的表名, 所有符合匹配的表都会被导出。但如果表名含有’%’字符,如’a%b’, 而且只想备份这个表本身,则需要指定single=true。

默认情况下数据库中的表名均为大写字母, 如果用户使用混合字母输入或者小写字母而想要保留事例的敏感性, 则必须将名字放入引用语标志进行封装,这样表名就必须与数据库中存储的表名严格匹配才有效。

一些操作系统要求引用语标记在命令行格式下优先于分离的字符, 下面的例子显示了事例敏感性在不同的导出模式怎样被优先:

命令行模式:

TABLE =( “””Emp”””)

参数文件模式:

TABLE = (\”Emp\”)

表名指定了命令行不能包含#字符,除非表名是被附上引用语标志;同样,在参数文件中,如果表名附加了#字符,导出机制会将其识别成注释,除非表名是被附上引用标记;例如下面句子,参数文件会将#后面的内容翻译成注释内容而不是表dept、mydata;

TABLE = (emp# , dept , mydata)

但是如果格式是如下示例,则导出机制将成功导出3个表,因为#被包含进了引用语标志;

TABLE = (“””emp#””” , dept , mydata)

注解

Linux5操作系统中参数值左右括号需要加上双引号。例如:schema="(schema1,shcema2,…)" table="(table1,table2,…)"。