数据泵导入导出
查询数据库版本语句:
select * from v$version
1. 创建表空间 :
create tablespace TBS_BHGX logging datafile 'E:\OracleData\TBS_BHGX.dbf' size 50m autoextend on next 50m maxsize 2048m extent management local; ( 其中'E:\OracleData\TBS_BHGX.dbf'路径为当前登录IP地址用户所用的电脑下的文件夹路径,如果此电脑下没有此路径,则无法创建表空间。所以,路径大家可以提前创建好,确认所连IP地址是哪台电脑,是服务器,还是自己本地电脑,要确认所在的电脑下有此目录。TBS_BHGX这个为表空间名,创建新表空间的时候可以修改名称,其他路径不要动,各项目的数据根据数据库引擎的不同分别存储于不同的磁盘中。其中,172.16.8.6的服务器上的Oracle数据库文件存放于E:\OracleData文件夹中,每个项目或产品的数据放到各自不同的文件夹中(已共享为\\172.16.8.6\OracleData),如吉大的数据目录为E:\OracleData\JiDa。)
删除空间语句:drop tablespace 表空间名称 including contents and datafiles cascade constraints;
查询当前用户空间名:
select default_tablespace from dba_users where username='登录用户'
查询所有空间名:
select * from dba_tablespaces;
本机表空间创建路径为 F:\Soft\app\dbf
2.创建用户:
管理员登录数据库,创建新用户(用户名一定要大写),分配已创建好的表空间。
create user 用户名 identified by 密码 default tablespace 表空间名;
drop user user_name cascade;(删除用户带级联)
本机最高权限用户:
system wanli666
3. 授权
Sqldeveloper 最高权限用户登录,执行授权语句:
Grant dba to 新用户名(大写) with admin option;
4. 创建操作目录
select * from dba_directories; 查询所有的已创建的oracle操作目录
在E盘根目录下创建dump文件夹(数据泵导出存放的路径);
用系统管理员登录数据库,在SQL执行器中,sqldevelper中执行如下命令:
create directory DumpDir as 'e:\dump';(每次导入,导出都可重新定义新的目录,如果不知道之前的目录的话,重新定义就行了。)
其中 'e:\dump' 路径为当前登录IP地址用户所用的电脑下的文件夹路径,如果此电脑下没有此路径,则无法创建表空间。所以,路径大家可以提前创建好,确认所连IP地址是哪台电脑,是服务器,还是自己本地电脑,要确认所在的电脑下有此目录。
将该目录的使用权限赋给用户,执行如下命令(SQL执行器执行):
grant read,write on directory DumpDir to 新用户;
5. 导入
呼出cmd终端,执行导入语句,将dmp文件导入服务器中的oracle,首先电脑需要装oracle客户端,否则不识别impdb命令。电脑cmd命令呼出,执行命令,公司的数据库目录是DumpDir,注意不要搞错了。(先创建操作目录,第四条)
导入:
Impdp PIPELINE_BHGX/sagis@172.16.8.6:1521/orcl table_exists_action=replace directory=DumpDir dumpfile =PIPELINE_BHGX.DMP remap_schema=olduser:newuser remap_tablespace=olduser:newuser (用户名有变化,带上remap_schema参数,否则数据会默认导入原先数据泵文件的用户,不导入新用户,导入失败。空间名有变化,带上remap_tablespace参数(前者是旧用户,后者是新用户)
导出:
expdp IPARKPIPEMETADATA_BYJC/sagis@172.16.8.6:1521/orcl directory=LIUHAO dumpfile =IPARKPIPEMETADATA_BYJC.dmp
table_exists_action选项:{skip 是如果已存在表,则跳过并处理下一个对象;append是为表增加数据;truncate是截断表,然后为其增加新数据;replace是删除已存在表,重新建表并追加数据}