最近工作一直在做关于OGG的相关内容,难免会涉及到Oralce数据库的一些相关操作,想着记录下来以免忘记或者需要的时候找不到,日后新的操作再慢慢累计补充
1、创建表空间
create tablespace TSP_NAME datafile '/data/d1/oradata11/tsp_name01.dbf' size 100M autoextend on maxsize 30G;
2、新增表空间文件
ALTER TABLESPACE TSP_NAME ADD DATAFILE '/data/d1/oradata11/tsp_name.dbf' size 100M autoextend on maxsize 30G;
3、创建临时表空间
create temporary tablespace MY_TEMP tempfile '/data/d1/oradata11/my_temp01.dbf' size 50m autoextend on maxsize 10G;
4、新增临时表空间文件
ALTER TABLESPACE MY_TEMP ADD TEMPFILE '/data/d1/oradata11/my_temp02.dbf' size 100M autoextend on maxsize 30G;
5、创建用户
create user MYUSER identified by "123456" default tablespace TSP_NAME temporary tablespace MY_TEMP quota unlimited on TSP_NAME;
6、给用户授权
grant CONNECT, RESOURCE,dba to MYUSER;
8、获取当前数据库的scn号
select current_scn from v$database;
7、expdp数据按用户导出和按表导出
--创建导出数据的路径
create or replace directory SZ_BAK as '/u01/bak';
--按用户导出
expdp 'userid="/ as sysdba"' directory=SZ_BAK DUMPFILE=TABLES_20210201_%U.dmp schemas=LAB,COMM,MYPACS LOGFILE=tables_backup0201.log PARALLEL=6 FILESIZE=30G flashback_scn=当前scn号 job_name=Tables_Export
--按表导出
expdp 'userid="/ as sysdba"' directory=SZ_BAK DUMPFILE=TABLES_20210201_%U.dmp tables=table1,tables2 LOGFILE=tables_backup0201.log PARALLEL=6 FILESIZE=30G flashback_scn=当前scn号 job_name=Tables_Export
--PARALLEL=6 并行度 设置并行线程 提高导出速率 不要高于CPU线程数
--FILESIZE=30G 设置导出文件大小
8、impdp数据导入
--创建导出数据的路径
create or replace directory dump as '/share/bak'
--查看已经创建的导入导出目录
select * from dba_directories;
impdp system/szadmin@nanf directory=dump DUMPFILE=TABLES_20210201_%U.dmp LOGFILE=tables_import.log PARALLEL=6 table_exists_action=replace job_name=Tables_Import
--table_exists_action=replace 表存在执行覆盖操作
9、查看导入导出任务状态或停止导入导出任务
--因为expdp,impdp直接ctrl+C是停止不了的,任务还在后台运行,所以要正确停止任务
--查看任务状态
select job_name,state from dba_datapump_jobs;
--STATE值为EXECUTING处于执行状态
--STATE值为NO RUNNING处于停止状态
--进入任务
expdp/impdp 用户名/密码@实例名 attach=任务名称(job_name)
STOP_JOB=IMMEDIATE --停止任务
KILL_JOB --删除任务
10、查看数据库是否处于归档模式
--首先用sys登录数据库,查看oracle是否开启归档模式(su - oracle切换用户,然后sqlplus / as sysdba进入sql模式)
archive log list;
--非归档模式
--Database log mode No Archive Mode
--Automatic archival Disabled
--归档模式
--Database log mode Archive Mode
--Automatic archival Enabled
11、开启数据库归档模式
--先关闭数据库
shutdown immediate;
--启动数据库到mount状态
startup mount;
--启用归档模式
alter database archivelog;
--启动数据库
alter database open;
12、修改归档日志路径
--修改归档日志路径
alter system set log_archive_dest_1='location=E:\app\Administrator\archlog\orcl';
--切换日志
alter system switch logfile;
13、关闭数据归档模式
--先关闭数据库
shutdown immediate;
--启动数据库到mount状态
startup mount;
--关闭归档模式
alter database noarchivelog;
--启动数据库
alter database open;
14、查看数据库是否强制日志(force_logging)和开启最小附加日志(supplemental_log_data_min)
select force_logging, supplemental_log_data_min from v$database;
--YES 开启;NO 未开启
15、开启强制日志或最小附加日志
--开启强制日志
alter database force logging;
--开启最小附加日志
alter database add supplemental log data;
16、查看、开启全列补充日志
--查看是否打开
select supplemental_log_data_all as A from v$database ;
--YES 开启;NO 未开启
--打开全列补全日志
alter database add supplemental log data (all) columns;
17、快照过旧解决办法
--增加UNDO表空间大小
alter tablespace undotbs1 add datafile '/data/d1/oradata11/undotbs02.dbf' size 100M autoextend on next 128M maxsize 30G;
--增加undo_retention 时间,默认只有15分钟
alter system set undo_retetion=21600; --单位是秒
18、监听操作
--查看监听状态
lsnrctl status
--启动监听
lsnrctl start
--停止监听
lsnrctl stop