通过CMD登录SQLPLUS 的语句
C:UsersAdministrator>sqlplus /nolog
SQL> conn sys/pwd as sysdba;
导入导出数据库(来源网络):
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
exp system/manager@TEST file=d:daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:daochu.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
要想压缩,在上面命令后面 加上 compress=y 就可以了
数据的导入
1 将D:daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:daochu.dmp FULL=Y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1) FULL=Y
oracle 10g以上可以采用新的备份还原方式,该备份还原方式的好处是对于大数据库备份还原速度会比之前的方法快很多
1,导出表
expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
2,导出方案
expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp
SCHEMAS=system,scott
3.导出表空间
expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp
TABLESPACES=user01,user02
4,导出数据库
expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y
使用IMPDP
默认路径备份文件存放路径:OracleAppAdministratoradmindbtestdpdump
IMPDP命令行选项与EXPDP有很多相同的,不同的有:
1,REMAP_DATAFILE
该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.
REMAP_DATAFIEL=source_datafie:target_datafile
2,REMAP_SCHEMA
该选项用于将源方案的所有对象装载到目标方案中.
REMAP_SCHEMA=source_schema:target_schema
3,REMAP_TABLESPACE
将源表空间的所有对象导入到目标表空间中
REMAP_TABLESPACE=source_tablespace:target:tablespace
4.REUSE_DATAFILES
该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N
REUSE_DATAFIELS={Y | N}
5.SKIP_UNUSABLE_INDEXES
指定导入是是否跳过不可使用的索引,默认为N
6,SQLFILE
指定将导入要指定的索引DDL操作写入到SQL脚本中
SQLFILE=[directory_object:]file_name
Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql
7.STREAMS_CONFIGURATION
指定是否导入流元数据(Stream Matadata),默认值为Y.
8,TABLE_EXISTS_ACTION
该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP
TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }
当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项
9.TRANSFORM
该选项用于指定是否修改建立对象的DDL语句
TRANSFORM=transform_name:value
Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.
Impdp scott/tiger directory=dump dumpfile=tab.dmp
Transform=segment_attributes:n:table
10.TRANSPORT_DATAFILES
该选项用于指定搬移空间时要被导入到目标数据库的数据文件
TRANSPORT_DATAFILE=datafile_name
Datafile_name用于指定被复制到目标数据库的数据文件
Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp
TRANSPORT_DATAFILES=’/user01/data/tbs1.f’
调用IMPDP
1, 导入表
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp
TABLES=dept,emp
Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp
TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM
第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM方案中.
注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.
2,导入方案
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp
SCHEMAS=scott
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp
SCHEMAS=scott REMAP_SCHEMA=scott:system
3,导入表空间
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp
TABLESPACES=user01
4,导入数据库
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y
注意事项:
impdp test/test SCHEMAS=APP DIRECTORY=work_dir LOGFILE=imp_app.log DUMPFILE=app.dmp
1. 创建user test和directory work_dir
create user test identified by test; 另外也有identified by value test的形式,注意区别
create directory work_dir as '/u01/home/t';
2. work_dir的路径必须保证OS中已经创建好了
mkdir -p /u01/home/t
3. 赋予test用户对work_dir的读和写权限
grant read,write on directory work_dir to test;
4. 保证app.dmp文件在work_dir的目录下
5. impdp的时候 尽量采用noarchivelog方式,否则会产生大量的archivelog 影响速度
如果使用的是RAC环境, 还需要特别注意. 因为你当前使用的instance并不一定是你当前所在的host. 这样就会出现即使你以上几步都没问题, 但由于impdp时查找的并不是你当前的node从而导致失败. 解决的方法是关闭其它的instance, 确保使用的是当前node上的instance.
新建表空间
create tablespace demo datafile 'E:oracleTableSpacetsdemo.dbf' size 100M autoextend on next 1M maxsize unlimited;
新建用户,并赋予默认空间
create user demouser
identified by "userpwd"
default tablespace demo
temporary tablespace TEMP
profile default;
grant dba to demo; //复DBA权限
grant unlimited tablespace to demo;
删除所有的用户表
select 'drop table '||table_name||';'
from CAT
where table_type='TABLE'
删除视图
select 'drop VIEW '||table_name||';'
from CAT
where table_type='VIEW'
该语句能生成所有用户新建的表的删除语句,可以按照需要使用
delete tables
--delete views
--delete seqs
--delete functions
--delete procedure
--delete package