参数使用说明¶
对于所有的参数,有的为默认值输入,有的没有默认值,必须自己输入。另外参数的输入不区分大小写。
参数命令调用格式:
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,…)"。