<返回更多

oracle常用命令梳理

2022-11-10  今日头条  敏锐原野G
加入收藏
1、打开sqlplus连接
su - oracle
sqlplus /nolog
2打开数据库
conn sys / as sysdba
sqlplus / as sysdba
---使用sys_context查看属于哪个容器
select sys_context('USERENV','CON_NAME') from dual; 
-- 查看表空间
select * from v$datafile;
select * from v$tempfile;
--查看表空间创建语句
select dbms_lob.substr(dbms_metadata.get_ddl('TABLESPACE',a.tablespace_name)) from dba_tablespaces a;
-- 设置数据库模式
alter pluggable database pdb1 open read write;
--查询当前容器具有哪些pdbs
show pdbs;
 -- 修改数据库会话
 alter session set container=pdb1;
-- 关闭指定pdb
alter pluggable database 容器名称 close immediate ;

--若pdb状态为need sync,则需要:同步文件
select pdb_name,status from cdb_pdbs;

 
--创建表空间
 create tablespace ams datafile '/u01/App/oracle/oradata/ams.pdf' size 2048m autoextend on next 10m maxsize 4000m;
 
--修改用户默认表空间
 alter user 用户名 default tablespace to 表空间名称;
-- 删除表空间    including contents 表示删除表空间的同时删除表空间中的数据。如果不指定including contents 参数,而该表空间又存有数据时,则Oracle会提示错误。
                           cascade constraints: 表示当删除表空间时也删除相关的完整性限制。
drop tablespace 表空间名称 including contents  ;
 
 --授予用户使用表空间权限
 grant unlimited tablespace to 用户;
grant create session to ams;


在Oracle12c中分为两类用户一类为PDB本地用户,一类为公共用户,创建PDB用户需要切换到PDB数据库。


-- oracle查看当前库中所有表空间
select file_name,tablespace_name,bytes from dba_data_files;
create user 用户名 identified by 密码 default tablespace  表空间名称;

create user  ams  identified by ams132  default tablespace ams;

grant sysdba to ams;

-- 通过dba_data_files查看oracle系统的数据文件。
col file_name for a50;
set linesize 100;
select file_name,tablespace_name from dba_data_files;
--通过dba_temp_files查看临时数据文件信息
select file_name,tablespace_name from dba_temp_files;
-- 控制文件信息查看
select name from v$controlfile;
-- 日志文件信息查看
select member from v$logfile;
 -- 查看当前系统是否采用递归模式
select dbid,name,log_mode from v$database;
  
 -- 查看归档日志文件的所在路径
show parameter log_archive_dest;
若显示spfile 的指定参数的信息,则只需使用show parameter + 参数。
-- 告警文件存储路径查看
show parameter background_dump_dest;
-- 显示当前进程的PGA信息。
show parameter pga;
-- 显示数据写入进程个数。
show parameter db_writer_processes;

使用set time on 命令设置在sqlplus命令提示符“SQL>”显示当前的系统时间。
set  time on;
set pagesize value; --一页中所显示数据行的数量。
show pagesize;-- 显示当前sql*plus环境中一页有多少行。


日志模式切换:
1、改变日志操作模式时,用户必须以sysdba的身份执行相应的操作。接下来讲解数据库由非归档模式切换为归档模式的具体操作步骤。
1)、查看当前的日志模式
  select log_mode from v$database;
2)、关闭并重新启动数据库 (改变日志操作模式必须在mount状态下进行)
   shutdown immediate;
   startup mount;
3)改变日志模式
   alter database archivelog;   
   alter database noarchivelog; (将归档模式切换为非归档模式)
4)、打开数据库
   alter database open;

 -- 数据库归档模式
 archive log list;


-- 查看指定表空间,有哪些表
select table_name  from dba_tables where tablespace_name='AMS' order by table_name;
select yd_acct_no from ams.yd_accounts_all;


oracle逻辑备份

1、创建directory
create or replace directory 目录名 as '目录路径';
2、查看有哪些directory
select owner,directory_name,directory_path from dba_directories;
3、赋权
grant  read,write on directory directory名称 to 用户;
4、删除指定directory
drop directory dump_dir;


oracle 版本查看
sqlplus -v   


-- 可插拔数据库创建
create pluggable database 数据库名 admin user 用户名 identified by pwd_report
 roles=(connect)
 file_name_convert=('/oracle/oradata/orcl/pdbseed','/oracle/oradata/orcl/reportpdb');

-- 查看该用户模式下,拥有的数据表
select table_name from user_tables;
-- 另外,用户也可以在system模式下,通过检索dba_tables表来显示ams模式下拥有的4个数据表。


-- 查看当前用户表空间
select username,default_tablespace from user_users;
-- 查看当前用户下所有表空间的使用情况
SELECT
	a.tablespace_name "表空间名",
	total / ( 1024 * 1024 ) "表空间大小(M)",
	free / ( 1024 * 1024 ) "表空间剩余大小(M)",
	( total - free ) / ( 1024 * 1024 ) "表空间使用大小(M)",
	round(( total - free ) / total, 4 ) * 100 "使用率 %" 
FROM
	( SELECT tablespace_name, SUM( bytes ) free FROM dba_free_space GROUP BY tablespace_name ) a,
	( SELECT tablespace_name, SUM( bytes ) total FROM dba_data_files GROUP BY tablespace_name ) b 
WHERE
	a.tablespace_name = b.tablespace_name;


SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
       D.TOT_GROOTTE_MB "表空间大小(M)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                     2),
               '990.99') || '%' "使用比",
       F.TOTAL_BYTES "空闲空间(M)",
       F.MAX_BYTES "最大块(M)"
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
               ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
          FROM SYS.DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
          FROM SYS.DBA_DATA_FILES DD
         GROUP BY DD.TABLESPACE_NAME) D
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
 ORDER BY 1;
-- oracle 数据库整库大小
select sum(bytes)/1024/1024/1024 from dba_data_files;
-- 查看某表的创建时间
select object_name,created from user_objects where object_name=upper('表名');
-- 查看某表的大小
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('表名');
-- 查看索引
select index_name,index_type,table_name from user_indexes order by table_name;
select * from user_ind_columns where index_name=upper('索引名称');
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('索引名称');

-- sqlplus 连接到可插拔数据
conn  用户名/密码@实例名;
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>