开启服务:
- su - oracle
- lsnrctl start
- sqlplus /nolog
- conn /as sysdba
- startup
关闭服务:
- su - oracle
- sqlplus /nolog
- conn /as sysdba
- shutdown abort
- startup restrict
- shutdown
- List item
- quit
- lsnrctl stop
创建用户:
-
查看用户表空间放置的位置:
select status,fuzzy,tablespace_name,name from v$datafile_header; -
创建用户表空间:
create tablespace test(表空间名) datafile ‘/oracle/oradata/orcl/test01.dbf’(数据文件位置) size 600M autoextend on next 50m maxsize unlimited; -
表空间增加数据文件:(Oracle一个数据文件默认最大为32G)
alter tablespace test add datafile ‘/oracle/oradata/orcl/test02.dbf’ size 600M autoextend on next 50m maxsize unlimited; -
创建用户并指定默认表空间:
create user testUse1r identified by 123456 default tablespace test; -
赋予权限:
grant connect,resource,dba to testUser1;
grant select on testUser2.t1 to testUser1;(为testUser1赋予testUser2用户t1表的读取权限) -
收回权限:
revoke dba from testUser; -
修改用户密码:
alter user testUser1 identified by 654321; -
删除用户,及级联关系也删除掉
drop user testUser1 cascade;
删除表空间,及对应的表空间文件也删除掉
drop tablespace testUser1 including contents and datafiles cascade constraint;
无法删除当前链接的用户:
select username,sid,serial# from v$session;
alter system kill session’507,53’;
Oracle数据备份和恢复:
- exp方式
导出指定用户下的所有表和数据
exp testUser1/123456 file=/data/exp/testUser1.dpm log=/data/exp/log/testUser1.log
导出指定的表和条件
exp testUser1/123456 TABLES=t1,t2,t3 file=/data/exp/testUser1.dpm log=/data/log/exp/testUser1.log QUERY=“WHERE ID=‘7’ OR ID = ‘8’ OR ID = ‘9’” - imp方式
恢复备份文件中的所有表:
imp testUser2/testUser2@orcl file=/data/testUser1.dpm log=/data/log/imp/testUser1.log full=y ignore=y
恢复备份文件中的指定表:
imp testUser2/testUser2@orcl file=/data/testUser1.dpm log=/data/log/imp/testUser1.log tables=t1,t2,t3 full=y ignore=y - 相关参数:
rows=n(只导出表结构)compress=n(不压缩)commit=y(提交)
SELECT * FROM dba_directories;
查看directory名称和位置,将dumpfile放置对应directory文件夹得位置。
-
expdp(建议使用Expdp方式进行备份,并行处理,暂停和重启,通过Remap_schema、Remap_datafile、Remap_tablespace实现导入过程中自动修改对象属主、 数据文件或数据所在表空间)
并行备份,并压缩,生成4个dmp文件:
expdp testUser1/123456@orcl directory=DIR1 dumpfile=testUser1_%U.dmp logfile=expdp_testUser1.log compression=ALL parallel=4
备份指定表和条件:
expdp testUser1/123456@orcl directory=DIR1 dumpfile=testUser1.dmp logfile=expdp_testUser1.log tables=(‘t1’,‘t2’,‘t3’) Query=A:" Where id<5",B:" Where neme = ‘a’ "
备份50%抽样数据:
expdp testUser1/123456@orcl directory=DIR1 dumpfile=testUser1.dmp logfile=expdp_testUser1.log sample=50 -
impdp
并行恢复,将导出用户testUser1的备份文件数据恢复到testUser2,并更改表空间:
impdp testUser2/123456@orcl directory=DATA_PUMP_DIR dumpfile=testUser1_%U.dmp parallel=4 REMAP_SCHEMA=testUser1:testUser2 REMAP_TABLESPACE=testUser1:testUser2 -
相关参数:
CONTENT=METADATA_ONLY(只导出表结构)compression=ALL(压缩)
如果恢复备份后,发现乱码,可查看相应导入数据库的字符集和导出数据库的字符集是否相同:
select * from nls_database_parameters; --服务端字符集
select * from nls_instance_parameters; --客户端字符集
select * from nls_session_parameters; --会话字符集
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK