陈奇网络工作室

进出口,数据泵、SQL*Loader、rman、oracle数据库备份

系统运维

进出口,数据泵,SQL*Loader,rman

数据库的逻辑备份和恢复:exp和顽童

1.导库:导出和导入整个数据库

2.导表空间:导出和导入表空间

3.导表用户:导出和导入用户中所有对象

4.导表:导出和导入表或表分区

(1)提交=y插入并提交,频繁提交会影响数据库效率。提交数据库过大时可以添加。

(2)忽略=是/否该参数表示忽略创建错误,并继续执行。

(3)满=y是否完全导入。

1.导出导入表

备份测试表:

将表emp _测试创建为select *来自emp _ test

经历导出数据库表:

exp Scott/123456 @ orcl file=/Oracle/bak _ Oracle/EMP _ test。DMP表=' EMP _ test '

按条件进行选择性导出

exp Scott/123456 @ 10。1 .1 .10:1521/orcl file=/Oracle/bak _ Oracle/EMP _ test。DMP表=' EMP _ test ' query=\ \ \ \ ' where sal between \ \ \ ' 1000 \ \ \ '和\ \ \ ' 2000 \ \ \ ' \ \ ' log=/Oracle/bak _ Oracle/EMP _ test。原木

用有权限用户导出不同用户的不同表

exp \ \ \ \ \ \ \ ' sys/syste as SYSDBA \ \ \ \ \ ' file=/Oracle/bak _ Oracle/EMP _ test。DMP表='斯科特。'雇员测试,测试.标签测试'

注:甲骨文用户登录并且配置了TNSNAME可以直接斯科特/123456

不是本机备份斯科特10.1.1.10:1521/orcl

删除测试表

删除表emp _测试

参数净化

顽童导入数据库表:

查询该用户存放数据的缺省表空间:从DBA _ users中选择用户名、默认表空间其中用户名=\\\ '斯科特\\\ '

在特殊情况下有些用户的数据需要放到特殊的表空间中,使用如下的命令进行修改。

修改该用户存放数据的缺省表空间:更改用户斯科特默认表空间XXX

imp Scott/123456 file=/Oracle/bak _ Oracle/EMP _ test。DMP

用有权限用户导出不同用户的不同表导入到一个用户表中

imp \ \ \ \ \ \ \ ' sys/system as SYSDBA \ \ \ \ \ \ \ ' file=/Oracle/bak _ Oracle/EMP _ test。DMP来自user=Scott

查询表是否删除和导入成功

select count(*)from EMP _ test;

2.导出导入用户

导出一个用户下面的数据

exp Scott/123456 file=/Oracle/bak _ Oracle/Scott。DMP所有者=斯科特;

删除一个用户

SQL删除用户斯科特卡斯克德

删除用户斯科特级联

*

第一行出错:

ORA-01940:无法删除当前已连接的用户

(1)查看是否有结构化查询语言语句在占用这张表

选择ses .INST_ID,sess.machine,

sess.program,sess.sql_id,

sess.sid,sess.serial#,

成功.过程

lo.oracle用户名,lo.os用户名,

lo.locked _ mode

ao.object_name,ao.object_type,

敖。状态,

来自gv$locked_object lo,dba_objects ao,gv$session sess

其中ao.object_id=lo.object_id

而lo.session_id=sess.sid

和sess.username=\\\'SCOTT\\\ '

杀掉进程样本号,序列号

更改系统终止会话\\\'10,11562 \ \ \ '

(2)查看是否有会话没有结束

SQL从v$session中选择用户名、sid、序列号、paddr、状态其中用户名=\ \ \ '斯科特\ \ \

用户名(同suddenionosphericdisturbance)电离层的突然骚扰序列号PADDR状态

斯科特1 281 000000008E51C510死亡

斯科特20 362 000000008E491150未激活

斯科特21 175 000000008E48D050未激活

斯科特28 169 000000008E51C510死亡

SQL选择程序from v $ process where addr=\ \ \ ' 000000008 e 490110 \ \ \ '

程序

oracle@master.example.com

杀掉进程样本号,序列号

更改系统终止会话\\\'1,281 \ \ \ '

更改系统终止会话\\\'20,362 \ \ \ '

更改系统终止会话\\\'21,175 \ \ \ '

更改系统终止会话\\\'28,169 \ \ \ '

SQL删除用户斯科特卡斯克德

用户已删除。

导入一个用户下面的数据

先授权(连接数据库和工商管理学博士(工商管理博士)的权限)再导入(用户斯科特下面的所有表)

将连接、资源授予由123456标识的斯科特

将工商管理学博士授予斯科特

imp Scott/123456 file=/Oracle/bak _ Oracle/Scott。DMP满=y;

用有权限的用户导入表给用户

imp \ \ \ ' sys/system @ 10 . 1 . 1 . 10:1521/orcl as SYSDBA \ \ \ ' file=/Oracle/bak _ Oracle/Scott . DMP from user=Scott touser=Scott

注意:touser=可以给不同的用户。

3.导入和导出表空间

-待续

当要备份的数据量很大时,建议选择数据泵。

数据库的逻辑备份和恢复:expdp和impdp

数据泵只能在数据库的服务器端使用。

在服务器上创建一个目录,用于在导入和导出时存储数据。

将目录DATA_BAK创建为\ \ \ '/Oracle \ \ \ '

授权用户对目录进行读写。

授予对目录DATA_BAK的读、写权限以进行测试;

查看目录和所有者,路径

select * from dba _ directories

Expdp用户名/密码@IP/net服务名称schemas=用户名目录=创建的目录转储文件=数据表名称。dmp日志文件=数据表名称。日志。

ex PDP TEST/TEST @ 10 . 1 . 1 . 10:1521/orcl schemas=\ \ \ ' TEST \ \ \ ' directory=\ \ \ ' DATA _ BAK \ \ \ ' dump file=/Oracle/XXX . DMP log file=/Oracle/XXX . log

模式:用户名,目录:创建的用于存储数据的目录,转储文件:要导出的数据库备份dmp文件,日志文件:存储导出日志文件,压缩:导出时压缩文件。

用脚本文件导出数据库文件:

[Oracle @主oracle]$ cat aa.par

userid='测试/测试'

#userid='/as sysdba '用dba导出

目录=数据_BAK

dumpfile=emp_test2.dmp

logfile=emp_test2.log

#平行=5

压缩=全部

# nologfile=否

模式=测试

job_name=emp_test2_expdp

使用命令调用:

nohup expdp parfile=aa.par

使用命令导出数据库文件:

ex PDP test/test @ 10 . 1 . 1 . 10/orcl directory=DATA _ BAK dump file=EMP _ test 2 . DMP log file=EMP _ test 2 . log schemas=test

数据泵导入数据库语句:

impdp test/test @ 10 . 1 . 1 . 10:1521/orcl REMAP _ SCHEMA=test:test table _ exists _ action=replace directory=DATA _ BAK dump file=EMP _ test 2 . DMP log file=EMP _ test 2 . log

数据库的批量导入:SQL*Loader

连接用户

查看表格结构

控制文件:

[Oracle @主oracle]$ cat EMP_LOADERTEST2.ctl

加载数据

INFILE \ \ \ '/Oracle/EMP _ loader test 2 . CTL \ \ \ '

截断到表EMP_LOADERTEST2中

以''结尾的字段可以用\\\''\\ '括起来

(员工编号、姓名、职务)

数据文件:

[Oracle @主oracle]$ cat EMP_LOADERTEST2.dat

11,a1,1,11,22,33,44,55

11,2,2,11,22,33,44,55

11,3,2,11,22,33,44,55

11,4,3,11,22,33,44,55

导入时,数据文件中的数据应该与控制文件中的数据相对应。

要导入的表中的字段类型需要一致。

sqlldr测试/测试控制=/Oracle/EMP _ loader test 2 . CTL data=EMP _ loader test 2 . dat

生成sqlldr的日志文件。

在日志文件中查看数据库导入。

检查表中有数据吗?

扩展表空间

如果系统表空间莫名其妙地变大,系统表空间会自动扩展。

1.查询审计功能是否开启,对审计表中的数据影响较大。

检查审计功能是否打开。

显示参数审核;

2.关闭审计功能命令

SQL alter system set audit _ sys _ operations=FALSE scope=spfile;

系统改变了。

SQL alter system set audit _ trail=NONE scope=spfile;

系统改变了。

重新启动数据库以使其生效

注意:audit_sys_operations的参数设置:

None禁用数据库审计。

操作系统支持数据库审计,并将数据库审计记录定向到操作系统审计记录。

Db启用数据库审计,并将数据库的所有审计记录定向到SYS。数据库的AUD$表。

Xml支持数据库审计,并将所有记录以XML格式写入操作系统文件。

Xml,extended启用数据库审计并输出审计记录的所有列,包括SqlText和SqlBind的值。

3.查询统计数据是否过多。

统计信息的默认时间为31天,可以修改为10天或一周,过期的统计信息系统会自动删除。

SQL select DBMS _ stats . get _ stats _ history _ retention from dual;

SQL连接/作为sysdba

已连接。

SQL exec DBMS _ stats . alter _ stats _ history _ retention(10);

更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3