自用,记录一下,有不对的地方希望能指正一下
1.登陆Oracle数据库
sqlplus / as sysdba
2. 没有库则建库
略
3. 没有用户则建用户并授权
--创建用户
create user username identified by password;
--授权
grant connect,resource,dba to username;
4.没有表空间则创建并扩充表空间 ,表空间所在目录要手动创建(登陆username用户)
--创建表空间(初始1G,每次增加100M,最大30G)
create tablespace tablespacename datafile '表空间所在目录/表空间名.pbf' size 1024m autoextend on next 100m maxsize 30G;
--扩表空间(建议表空间总最大容量大于1.5倍的bmp数据文件大小,表空间太大时分多个表空间,每个表空间不要太大,单个磁盘空间不足可将不同表空间放到不同盘下)
ALTER TABLESPACE tablespacename ADD DATAFILE '表空间所在目录/表空间名2.pbf' size 1024m autoextend on next 100m maxsize 30G;
--undo表空间(根据具体情况增加)
ALTER TABLESPACE UNDOname ADD DATAFILE '表空间所在目录/UNDO表空间名2.dbf' size 1024m autoextend on next 100m maxsize 30G;
5.没有表结构则创建表结构
略
6.使用impdp导入数据(需要确认之前是使用expdp导出的)(sqlplus / as sysdba)
--创建或者修改dump_dir路径(dmp所在路径)
create or replace directory dump_dir as 'dmp数据文件目录';--授权(在sysdba下)
grant read,write on directory dump_dir to username;--导入数据(directory:dmp所在路径 dumpfile:dmp文件名 logfile:导出时的文件日志,我一般放到shell脚本里执行)
impdp username/password directory=dump_dir dumpfile= name1.dmp,name2.dmp logfile=impdp.log
---------------------------------------------------------------
常用查询命令
--查看用户
select username from dba_users;
--查看当前用户
show user;
--查看表空间
select TABLESPACE_NAME from user_tablespaces;
--查看表
select table_name from user_tables;
-- 表空间所在位置,大小
select file_name,tablespace_name,bytes/1024/1024/1024 from dba_data_files;
--查看job,判断是否在执行
select * from dba_datapump_jobs
--正确停止impdp导出任务使用stop_job
impdp qxt_bak/dbms_lock attach=SYS_IMPORT_FULL_01 ---回车,可以查看该任务的详细情况
--import> stop_job=immediate ---回车,任务停止后会自动退出impdp命令
--删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;