Oracle12c 日常配置记录

CDB用户必须以‘c##’为开头,否则创建用户失败。

授权:grant dba,CONNECT,RESOURCE to C##tao;

PDB自动启动

#最后面的斜杠/ 一定要加上
CREATE OR REPLACE TRIGGER open_pdbs
	AFTER STARTUP ON DATABASE
	BEGIN
	EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ORCLPDB OPEN';
	END open_pdbs;
/

 

基础操作

 select status from v$instance;  #查看状态

 

CDB、PDB、PDB$SEED与SqlServer中对象对应:

  • 1、CDB与PDB可以实现一个CDB对应多个PDB,这和sqlserver中的单个实例对应多个数据库架构是有点相似的思路。
  • 2、PDB$SEED可以看成是master、msdb等系统数据库;
  • 3、PDBS可以看成用户创建的数据库。
  • 4、可插拔的概念与SqlServer中的用户数据库分离、附加有相似的思路

select name,open_mode from v$pdbs; 

select *from dba_directories; #查看所有目录

 select *from dba_tablespaces;  #查看所有表空间   #用户的 select * from user_tablespaces

查看数据库文件位置

  Oracle必须的文件:数据文件,控制文件,重做日志文件,和参数文件

  select name from v$datafile;   #1.数据文件

  select member from v$logfile;   #2.日志文件

  select name from v$controlfile;   #3.控制文件

  show parameter pfile;  # 4.参数文件

  #rman备份与恢复
  show parameter DB_RECOVERY_FILE_DEST #查看备份目录
  SHOW CONTROLFILE AUTOBACKUP FORMAT #查看自动备份目录

 开启归档

#查看当前归档模式
select log_mode from v$database;
#用shutdown immediate或shutdown normal关闭数据库
shutdown immediate;
#数据库关闭后,用startup mount启动数据库、加载实例但数据库关闭
startup mount;
#使用命令:alter database archivelog;打开归档日志,执行命令成功后返回数据库已更改的消息
alter database archivelog;
#使用命令:alter database open;打开数据库即可完成整体操作
alter database open;
#查看归档日志目录
select * from v$recovery_file_dest;

查询归档路径

#查询归档路径
archive log list;
#windows
show parameter DB_RECOVERY_FILE_DEST

 

 PDB模式

#发现有一个没开启
show pdbs;
alter pluggable database PDBORCL open;
alter pluggable database ALL open;

 查看版本号

select * from v$version;

 #创建用户

#查看当前连接
show con_name;
#查看sid: echo $ORACLE_SID
show pdbs; alter session set container
=ORCLPDB1; create user tao identified by taomg123; grant dba to tao;

#查看用户
select * from user_users;
select * from all_users;
select * from dba_user;
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
#切换session
alter session set container=PDBORCL;     //切换到PDB
alter session set container=CDB$ROOT;   //切换到CDB
#查看用户拥有的权限
select * from user_role_privs;
#查看当前用户缺省的表空间
select username,default_tablespace from user_users;
#查看用户freespace
select * from user_free_space;
#查看表空间对应的物理文件
select * from dba_data_files
#查看表空间有哪些表
select TABLE_NAME,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME='USERS'

 关于数据库的导入导出,EXPDP和IMPDP工具(主要用作数据迁移使用)

#扩展表空间-手动扩展大小
alter database datafile 'D:\DATABASE\DB\LMT_FILE3.DBF' resize 200M
#增加数据文件的个数
alter tablespace add datafile 'D:\DATABASE\DB\LMT_FILE4.DBF' size 100M
#自动扩展
alter database datafile 'D:\DATABASE\DB\LMT_FILE4.DBF' autoextend on next 100m maxsize 1000m
#创建DIRECTORY
create directory dir_dp as 'D:/oracle/dir_dp';
#授权
Grant read,write on directory dir_dp to sscuser;
#创建表空间
create tablespace IMAGEDATA datafile 'D:\DATABASE\DB\IMAGEDATA1.DBF' size 100M autoextend on next 100m maxsize 1000m
create tablespace IMAGEDATA datafile '/home/oracle/data/IMAGEDATA1.DBF' size 100M autoextend on next 100m maxsize 1000m

#EXPDP导出数据库
#此处EXPDP主要是 导出工具,非官方定义的备份工具 指定导出某个命名空间
EXPDP USERID='userid/userpwd@orclpdb as sysdba' directory=mydback dumpfile=testbk.dmp logfile=testdb.log tablespaces=IMAGEDATA
或者导出所有
EXPDP USERID='userid/userpwd@orclpdb as sysdba' directory=mydback dumpfile=testbk.dmp logfile=testdb.log full=y
#centos 19c
#导入数据到数据库
impdp username/userpassword@localhost/ORCLPDB1 directory=DATABACKUP dumpfile=TESTBK.DMP tablespaces=IMAGEDATA logfile=impdp.log   //linux
impdp USERID='username/userpassword@PDBORCL as sysdba' directory=DATABACKUP dumpfile=TESTBK.DMP tablespaces=IMAGEDATA logfile=impdp.log    //windows

create tablespace IMAGEDATA datafile 'D:\DATABASE\DB\IMAGEDATA1.DBF' size 100M autoextend on next 100m maxsize 1000m
#如果没有对应的用户请创建
create user username identified by userpassword default tablespace IMAGEDATA;
grant read,write on directory DATABACKUP to username
grant dba,resource,unlimited tablespace to username

# rman的备份和恢复

参考:https://www.cnblogs.com/WoLykos/p/11585744.html

一、target——连接数据库

#本机
rman target /
#远程
rman target system/passwd@orcl

二、show——查看配置

RMAN> show all
RMAN> show channel; // 通道分配
RMAN> show device type; // IO 设备类型
RMAN> show retention policy; // 保存策略
RMAN> show datafile backup copies; // 多个备份的拷贝数目
RMAN> show maxsetsize; // 备份集大小的最大值
RMAN> show exclude; // 不必备份的表空间
RMAN> show backup optimization; // 备份的优化

三、configure——调整配置

 

 

 问题集锦

ORA-01034:ORACLE not available

alter database open resetlogs;

参考地址:https://blog.csdn.net/luoww1/article/details/88844907/


 

 

ORA-00257:ORACLE

#参考链接:https://blog.csdn.net/dqswuyundong/article/details/89202763

今天数据库突然连不上了,报ORA-00257错误(空间不足错误),通过查找资料,绝大部分说这是由于Archivelog归档日志太多,占用了全部的硬盘剩余空间导致的,通过简单删除日志或加大存储空间就能够解决。

#删除最近7的归档(不推荐)
RMAN> DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';
#删除最近7天之前的归档日志
RMAN> DELETE noprompt force ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

 

读书总结

  Oracle数据库的逻辑结构是一种层次结构,主要由表空间,段,区和数据块等概念组成。逻辑结构是面向用户的,即用户利用Oracle开发应用程序使用的就是逻辑结构。

  

系统表空间不能脱机。为避免系统表空间产生存储碎片以及争用系统资源的问题,建议创建独立的用户表空间来单独存储用户对象和数据

#查看表空间
SELECT
t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name;
#增加表空间文件
select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name
alter tablespace IMAGEDATA add datafile 'D:\DATABASE\DB\IMAGEDATA2.DBF' size 1000m

 

posted @ 2021-05-13 14:42  港城大白鲨  阅读(117)  评论(0编辑  收藏  举报