1、打開(kāi)sqlplus連接
su - oracle
sqlplus /nolog
2打開(kāi)數(shù)據(jù)庫(kù)
conn sys / as sysdba
sqlplus / as sysdba
---使用sys_context查看屬于哪個(gè)容器
select sys_context('USERENV','CON_NAME') from dual;
-- 查看表空間
select * from v$datafile;
select * from v$tempfile;
--查看表空間創(chuàng)建語(yǔ)句
select dbms_lob.substr(dbms_metadata.get_ddl('TABLESPACE',a.tablespace_name)) from dba_tablespaces a;
-- 設(shè)置數(shù)據(jù)庫(kù)模式
alter pluggable database pdb1 open read write;
--查詢當(dāng)前容器具有哪些pdbs
show pdbs;
-- 修改數(shù)據(jù)庫(kù)會(huì)話
alter session set container=pdb1;
-- 關(guān)閉指定pdb
alter pluggable database 容器名稱 close immediate ;
--若pdb狀態(tài)為need sync,則需要:同步文件
select pdb_name,status from cdb_pdbs;
--創(chuàng)建表空間
create tablespace ams datafile '/u01/App/oracle/oradata/ams.pdf' size 2048m autoextend on next 10m maxsize 4000m;
--修改用戶默認(rèn)表空間
alter user 用戶名 default tablespace to 表空間名稱;
-- 刪除表空間 including contents 表示刪除表空間的同時(shí)刪除表空間中的數(shù)據(jù)。如果不指定including contents 參數(shù),而該表空間又存有數(shù)據(jù)時(shí),則Oracle會(huì)提示錯(cuò)誤。
cascade constraints: 表示當(dāng)刪除表空間時(shí)也刪除相關(guān)的完整性限制。
drop tablespace 表空間名稱 including contents ;
--授予用戶使用表空間權(quán)限
grant unlimited tablespace to 用戶;
grant create session to ams;
在Oracle12c中分為兩類用戶一類為PDB本地用戶,一類為公共用戶,創(chuàng)建PDB用戶需要切換到PDB數(shù)據(jù)庫(kù)。
-- oracle查看當(dāng)前庫(kù)中所有表空間
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;
-- 通過(guò)dba_data_files查看oracle系統(tǒng)的數(shù)據(jù)文件。
col file_name for a50;
set linesize 100;
select file_name,tablespace_name from dba_data_files;
--通過(guò)dba_temp_files查看臨時(shí)數(shù)據(jù)文件信息
select file_name,tablespace_name from dba_temp_files;
-- 控制文件信息查看
select name from v$controlfile;
-- 日志文件信息查看
select member from v$logfile;
-- 查看當(dāng)前系統(tǒng)是否采用遞歸模式
select dbid,name,log_mode from v$database;
-- 查看歸檔日志文件的所在路徑
show parameter log_archive_dest;
若顯示spfile 的指定參數(shù)的信息,則只需使用show parameter + 參數(shù)。
-- 告警文件存儲(chǔ)路徑查看
show parameter background_dump_dest;
-- 顯示當(dāng)前進(jìn)程的PGA信息。
show parameter pga;
-- 顯示數(shù)據(jù)寫(xiě)入進(jìn)程個(gè)數(shù)。
show parameter db_writer_processes;
使用set time on 命令設(shè)置在sqlplus命令提示符“SQL>”顯示當(dāng)前的系統(tǒng)時(shí)間。
set time on;
set pagesize value; --一頁(yè)中所顯示數(shù)據(jù)行的數(shù)量。
show pagesize;-- 顯示當(dāng)前sql*plus環(huán)境中一頁(yè)有多少行。
日志模式切換:
1、改變?nèi)罩静僮髂J綍r(shí),用戶必須以sysdba的身份執(zhí)行相應(yīng)的操作。接下來(lái)講解數(shù)據(jù)庫(kù)由非歸檔模式切換為歸檔模式的具體操作步驟。
1)、查看當(dāng)前的日志模式
select log_mode from v$database;
2)、關(guān)閉并重新啟動(dòng)數(shù)據(jù)庫(kù) (改變?nèi)罩静僮髂J奖仨氃趍ount狀態(tài)下進(jìn)行)
shutdown immediate;
startup mount;
3)改變?nèi)罩灸J? alter database archivelog;
alter database noarchivelog; (將歸檔模式切換為非歸檔模式)
4)、打開(kāi)數(shù)據(jù)庫(kù)
alter database open;
-- 數(shù)據(jù)庫(kù)歸檔模式
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、創(chuàng)建directory
create or replace directory 目錄名 as '目錄路徑';
2、查看有哪些directory
select owner,directory_name,directory_path from dba_directories;
3、賦權(quán)
grant read,write on directory directory名稱 to 用戶;
4、刪除指定directory
drop directory dump_dir;
oracle 版本查看
sqlplus -v
-- 可插拔數(shù)據(jù)庫(kù)創(chuàng)建
create pluggable database 數(shù)據(jù)庫(kù)名 admin user 用戶名 identified by pwd_report
roles=(connect)
file_name_convert=('/oracle/oradata/orcl/pdbseed','/oracle/oradata/orcl/reportpdb');
-- 查看該用戶模式下,擁有的數(shù)據(jù)表
select table_name from user_tables;
-- 另外,用戶也可以在system模式下,通過(guò)檢索dba_tables表來(lái)顯示ams模式下?lián)碛械?個(gè)數(shù)據(jù)表。
-- 查看當(dāng)前用戶表空間
select username,default_tablespace from user_users;
-- 查看當(dāng)前用戶下所有表空間的使用情況
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 數(shù)據(jù)庫(kù)整庫(kù)大小
select sum(bytes)/1024/1024/1024 from dba_data_files;
-- 查看某表的創(chuàng)建時(shí)間
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 連接到可插拔數(shù)據(jù)
conn 用戶名/密碼@實(shí)例名;