SELECT event
FROM v$system_event
select sid
from v$session_event where sid=
SELECT sid
FROM v$session_wait;
select * from v$sgastat;
select gethitratio
from v$librarycache
where namespace =
select sql_text
executions
from v$sqlarea;
select sum(pins)
sum(reloads)/sum(pins)
from v$librarycache;
select namespace
from v$librarycache;
select name
from v$rollstat a
where a
select df
f
from v$filestat f
where f
order by df
select substr(a
a
from v$datafile a
where a
select user_indexes
from user_ind_columns
where user_ind_columns
and user_ind_columns
order by user_indexes
user_indexes
select parameter
(
from v$rowcache
where gets+getmisses <>
group by parameter
select sum(pins)
sum(reloads)/sum(pins) *
from v$librarycache;
select sum(pinhits
from v$librarycache;
select count(name) num_instances
sum(parsed_size) parsed_size
sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size) size_required
from dba_object_size
group by type order by
select name
Decode(gets
Decode(immediate_gets+immediate_misses
immediate_misses/(immediate_gets+immediate_misses)*
FROM v$latch WHERE name IN (
SELECT name
select (sum(pins
select (sum(gets
select sum(pins)
後者除以前者
select sum(gets)
from v$rowcache
select * from sys
select busy/(busy+idle)
此值大於
select sum(wait)/sum(totalq)
select count(*) from v$dispatcher;
select servers_highwater from v$mts;
servers_highwater 接近 mts_max_servers 時
select tablespace_name
having count(tablespace_name)>
alter tablespace name coalesce;
alter table name deallocate unused;
create or replace view ts_blocks_v as
select tablespace_name
union all
select tablespace_name
select * from ts_blocks_v;
select tablespace_name
group by tablespace_name;
查看碎片程度高的表
SELECT segment_name table_name
FROM dba_segments WHERE owner NOT IN (
HAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segments GROUP BY segment_name);
select segment_name
tablespace_name=
select segment_name
group by segment_name;
select a
from v$session a
where c
SQL> col tablespace format a
SQL> select b
b
b
b
(b
sum(nvl(a
sum(nvl(a
from dba_free_space a
where a
group by b
order by b
/
dba_free_space
dba_data_files
select segment_name
select tablespace_name
from dba_data_files
group by tablespace_name;
select df
from (select tablespace_name
from dba_data_files
group by tablespace_name) df
(select tablespace_name
from dba_free_space
group by tablespace_name) fs
where df
select t
drop tablespace DATA_HOST_A including contents;
select tablespace_name
alter tablespace 表空間名 add datafile
alter tablespace 表空間名 add datafile
alter database datafile
alter database datafile
select substr(vses
substR(sql_text
from
V$sqlarea vsql
where
vsort
select tablespace_name
from v$sort_segment;
select segment_name
desc dba_segments
select segment_name
select tablespace_name
having count(tablespace_name) >
set transaction use rollback segment rollback_segment_name
declare @name char(
declare @homebase char(
declare @style char(
declare @arttist_id int
create artist_cursor cursor
for select * from dim_age
open artist_cursor
fetch artist_cursor into @arttist_id
while (@@sqlstatus=
begin
print @homebase
print @style
print @arttist_id
end
close artist_cursor
deallocate cursor artist_cursor
go
exp dss/dss@oralce query=\
rows=n
full=y tables=() owner=
imp userid/pwd@oracle_sid fromuser =( dss
exp user_id/pwd@oracle_sid tables=(user
log_archive_start = true
log_archive_dest_
log_archive_format = %%ORACLE_SID%%T%TS%S
shutdown
startup mount
alter database archivelog
alter database open
此時數據庫運行與歸檔模式下可以查詢輸入
archive log list
alter tablespace users begin backup ;
$ copy d:\oracle_home\usr
alter tablespace users end backup ;
alter system checkpoint ;
svrmgrl
connect internal
startup mount
alter database open
recover database
SQL> select * from tab;
SQL> create table b as select * from a where
SQL> create table b(b
SQL> select to_char(sysdate
SQL> copy from user
SQL> create view a as select b
SQL> grant connect
SQL>alter user test quota
SQL> conn test/test
如果不給用戶 connect 和 resource 角色的話那麼他們在指定的表空間中將
無法創建對象
alter user test account unlock/lock;
runInstaller
Set REMOTE_LOGIN_PASSWORDFILE to NONE
CONNECT / AS SYSDBA
CONNECT / AS SYSOPER
$orapwd file=$ORACLE_HOME/dbs/orapw SID password=admin entries=
Set REMOTE_LOGIN_PASSWORDFILE to EXCLUSIVE or SHARED
CONNECT INTERNAL/CONNECT
STARTUP PFILE=/DISK
STARTUP[FORCE][RESTRICT][PFILE=filename][OPEN RECOVER][ database]|MOUNT|NOMOUNT]
ALTER DATABASE database MOUNT;
ALTER DATABASE database OPEN READ
ALTER DATABASE database OPEN READ ONLY;
ALTER DATABASE { MOUNT | OPEN }
ALTER DATABASE OPEN [READ WRITE| READ ONLY]
CREATE MATERIALIZED VIEW LOG ON sales
WITH SEQUENCE
(prod_id
INCLUDING NEW VALUES; 首先創建視圖日志
CREATE MATERIALIZED VIEW sum_sales
PARALLEL
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
AS
SELECT s
COUNT(s
COUNT(s
FROM sales s
GROUP BY s
create tablespace space_name
create table mx_xsmx (cat char(
partition by range(cat) 有 range hash list 三種分區方法
(partition xsmx_
partition xsmx_
alter table mx_xsmx add partition xsmx_
alter table mx_xsmx split partition xsmx_
alter table mx_xsmx drop partition xsmx_
alter table mx_xsmx truncate partition xsmx_
alter table mx_xsmx rename partition xsmx_
alter table mx_xsmx modify partition xsmx_
storage (next
exp sales/sales_password tables=mx_xsmx:xsmx_
file=sales
oracle$ imp sales/sales_password FILE =sales
TABLES = (sales:sales
select * from mx_xsmx partition (xsmx_
create index index_name on table_name(DeptNO 列名 )
local (partition part
創建表及其參數含義
CREATE TABLE MB_CPZ (
YWFWDM VARCHAR
CPZDM VARCHAR
TABLESPACE DWSDATA
PCTFREE
PCTUSED
INITRANS
MAXTRANS
STORAGE (
INITIAL
NEXT
MINEXTENTS
MAXEXTENTS
FREELISTS
NOCACHE; 不放入高速緩存
[LOGGING|NOLOGGING] 所有的對表的操作都要記入 REDOLOG
手動修改表的參數
ALTER TABLE 名稱 PCTFREE
手工分配空間
ALTER TABLE 名稱 ALLOCATE EXTENT ( SIZE
一
單列索引 復合索引 唯一索引 非唯一索引
B
B
二
CREATE INDEX 名稱 ON 表名(列名) PCTFREE
三
四
ALTER INDEX 名稱 STORAGE (新值)
五
六
七
DROP INDEX 名稱
八
一
二
三
CREATE USER 名稱 IDENTIFIED BY 口令 DEFAULT TABLESPACE 默認表空間名 TEMPOARAY TABLESPACE 臨時表空間名 QUOTA
[PASSWORD EXPIRE]
QUOTA UNLIMITED ON TABLESPACE
[PROFILE 名稱 ]
四
A
B
五
ALTER USER 名字 QUOTA (數值) K|M|UNLIMITED ON 表空間名
A
B
C
六
七
兩個表的連接字段
GRANT CREATE SESSION TO 用戶名
一
二
三
對象是語句
當該語句資源使用溢出時
A
B
C
對象是
溢出時
四
五
LIMIT
SESSION_PER_USER
CPU_PER_SESSION
IDLE_TIME
CONNECT_TIME
六
CPU_PER_SESSION: 定義了每個 SESSION 占用的 CPU 的時間
CPU_PER_CALL: 每個語句占用的 CPU 時間
LOGICAL_READS_PER_CALL:
七
CREATE USER 名稱
PROFILE 名稱
ALTER USER 名稱 PROFILE 名稱
八
九
十
刪除一個新的尚未分配給用戶的 PROFILE
A
B
C
十一
用戶名
PROFILE 及各種限制參數的值
每個用戶的限制
十二
A
B
C
A RESOURCE_LIMIT:=TRUE
B ORACLE\RDBMS\ADMIN\UTLPWDMG
CREATE PROFILE 名稱
SESSIONS_PER_USER
password_life_time
failed_log_attempts
password_reuse_time
A FAILED_LOGIN_ATTEMPTS:
當連續登陸失敗次數達到該參數指定值時
B PASSWORD_LOCK_TIME: 加鎖天數
C PASSWORD_LIFE_TIME: 口令的有效期(天)
D PASSWORD_GRACE_TIME: 口令修改的間隔期(天)
E PASSWORD_REUSE_TIME: 口令被修改後原有口令隔多少天被重新使用
F PASSWORD_REUSE_MAX: 口令被修改後原有口令被修改多少次被重新使用
一授權的兩種分類 :
GRANT SELECT ANY TABLE TO ZT
A 允許一個特定的用戶對一個特定的對象做特定的操作
GRANT UPDATE ON EMP TO ZT
二系統授權的特點
INDEX:CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX
TABLE:CREATE ANY TABLE
ALTER
DROP
SELECT
UPDATE
SESSION:CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
TABLESPACE: CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
三如何授權 :
GRANT CREATE SESSION
A 轉授 : 當 A 用戶得到系統授權後
GRANT CREATE SESSION
TO [USERNAME|PUBLIC|ROLE] WITH ADMIN OPTION
舉例 :
GRANT CREATE SESSION TO ZT WITH ADMIN OPTION
ZT 用戶可以擁有 CREATE SESSION 權限
GRANT CREATE SESSION TO OLM
ZT
四 SYSDBA 和 SYSOPER 系統權限
STARTUP
ALTER DATABASE[MOUNT|OPEN];
RECOVER TABLESPACE
BACKUP DATABASE
ARCHIVELOG OR NOARCHIVELOG;
SYSTEM DABASE ADMIN: 數據庫管理員
SYSOPER WITH ADMIN OPTION
RECOVER DATABASE
CREATE DATABASE
五信息獲取
DBA_SYS_PRIVS
GRANTEE: 得到權限的人
PRIVILEGE: 得到何種權限
ADMIN OPTION: 是否可以轉授
想知道 SCOTT 有多少權限
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=
六回收權限 :
REVOKE 權限 FROM [USERNAME|PUBLIC|ROLE]
舉例 :
SYSTEM
ZT
七對象授權
TABLE: ALTER DELETE SELECT UPDATE INSERT
INDEX:DELETE INSERT SELECT UPDATE
CREATE
一
GRANT UPDATE(ENAME) ON EMP TO ZT WITH GRANT OPTION
二信息獲取
GRANTEE: 得到者
GRANTOR: 授權者
PRIVILEGE: 權限
GRANTABLE: 是否可以轉授
OWNER: 所有者
三 回收對象授權
第十五章 : 角色管理
一
二 建立角色
IDENTIFIED BY 口令
三 修改角色
將沒有口令的加一個口令
將有口令的變為沒有口令
三 分配一個角色
GRANT ROLE 名 TO 用戶名
四 回收一個角色
REVOKE ROLE 名 FROM 用戶名
五 如何創建一個默認角色
只有設為默認角色
DEFAULT ROLE 角色
DEFAULT ROLE ALL
六 打開和關閉角色 :
七 刪除角色
DROP ROLE 名稱
八 信息獲取
DBA_ROLE:
DBA_ROLE_PRIVS:
九 如何向角色裡加權限 :
GRANT 權限 TO 角色名
REVOKE 權限 FROM 角色名
角色 :
如果服務器的初始化參數中 global_names 的值為 TRUE 那麼就要求你創建的連接名稱必須與 SID 相同
create public database link link_name connect to user_name identified by passwd using
然後可以創建一個同義詞為使用方便起見
create synonyms synonyms_name for @ link_name
回滾段用於存放數據修改之前的值(包括數據修改之前的位置和值)
事務回滾
事務恢復
讀一致性
事務級的讀一致性
ORACLE 一般提供 SQL 語句級( SQLSTATEMENTLEVEL )的讀一致性
SET TRANSACTION READONLY
或
SET TANNSACTION SERIALIZABLE
以上兩個語句都將在事務開始後提供讀一致性
系統回滾段
非系統回滾段
DEFERED 回滾段
分配回滾段
SET TRANSTRACTION USE ROLLBACK SEGMENT rollback_segment
事務將以順序
例如(兩個事務使用同一個回滾段
回滾段的擴張( EXTEND )
當當前回滾段區的所有塊用完而事務還需要更多的回滾空間時
回滾段的回收和 OPTIMAL 參數
OPTIMAL 參數指明回滾段空閒時收縮到的位置
語法
CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment
[TABLESPACE tablespace]
[STORAGE ([INITIAL integer[K|M]] [NEXT integer[K|M]]
[MINEXTENTS integer]
[MAXTENTS {integer|UNLIMITED}]
[OPTIMAL {integer[K|M]|NULL}]) ]
注
回滾段可以在創建時指明 PRIVATE 或 PUBLIC
MINEXTENTS 必須大於等於
PCTINCREASE 必須是
OPTIMAL 如果要指定
建議
一般情況下
設置 OPTIMAL 參數來節約空間的使用
不要設置 MAXEXTENTS 為 UNLIMITED
回滾段應創建在一個特定的回滾段表空間內
CREATE ROLLBACK SEGMENT rbs
TABLESPACE rbs
STORAGE ( INITIAL
MAXEXTENTS
DROP ROLLBACK SEGMENT rbs
查詢回滾段的信息
所用數據字典
可以查詢的信息
例
SQL>SELECT segment_name
回滾段的統計信息
數據字典
SELECT n
FROM v$rollname n
WHERE n
回滾段的當前活動事務
數據字典
SQL>SELECT s
FROM v$session s
WHERE s
select add_months(sysdate
select last_day(sysdate) from dual
select next_day(sysdate
select months_between(
select chr(
select concat(
select initcap(
select lower(
select lpad(
select rpad(
select ltrim(
select replace(
select substr(
select instr(
select length(
select to_char(sysdate)||
select to_number(
select least(
select user from dual
select decode(columnname
select last_name
from employees e
RIGHT OUTER JOIN departments d
ON (e
錯誤現象
錯誤原因
一般
解決方法
SQL> conn sys/change_on_install
連接成功
SQL> desc props$
列名 可空值否 類型
NAME NOT NULL VARCHAR
VALUE$ VARCHAR
COMMENT$ VARCHAR
SQL> col value$ format a
SQL> select name
NAME VALUE$
DICT
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS
NLS_DATE_FORMAT DD
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET ZHS
NLS_SORT BINARY
NLS_CALENDAR GREGORIAN
NLS_RDBMS_VERSION
GLOBAL_DB_NAME ORACLE
EXPORT_VIEWS_VERSION
查詢到
NLS_CHARACTERSET 這個參數應該是 ZHS
SQL*Plus 中修改方法
SQL> update props$ set value$=
操作系統中修改方法
connect internal
alter database ORCL character set ZHS
alter database ORCL national character set ZHS
運行 regedit
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
找到以下字符串
NLS_LANG
檢查是否以下內容
SIMPLIFIED CHINESE_CHINA
一
執行 testsql
關閉系統
打開數據庫
刪除 ts_test
重新啟動數據庫時出現
然後打開數據庫即可(丟失 ts_test
注意
模式下時才可使用
二
A
B
C
問題產生過程
svrmgrl
connect internal
insert into myinfo values(
commit;
alter system switchlogfile;
shutdown abort
( 刪除 ts_test
startup
啟動時出現如下錯誤
ora
ora
恢復方法 A
( 提示恢復方式
恢復方法 B
( 提示恢復方式
恢復方法 C
( 提示出現 ora
( 提示恢復方式
三
如果系統含有其他的回滾段
則需要先建立回滾段信息
產生過程
( 結果為空 )
(tr_rbs 必須為 online)
ora
ora
恢復方法
錯誤信息 :ora
ora_
錯誤信息
提示信息
恢復方法也可采用文件恢復的方式進行
四
產生過程
恢復過程 :
說明
五
產生過程
( 備份數據文件
完成以上工作後
恢復方法 A:
恢復方法 B:
alter database datafile
說明
錯誤
六
產生過程
恢復方法
這是需要首先創建一個資料庫
將 Sqlnet
顯示數據庫的有關信息
SELECT * from v$database
顯示實例的信息
select * from v$instance
顯示所有的參數設置
select * from v$parameter
顯示版本信息
select * from v$version
在 SQLPLUS 下查看一些基本的參數
show parameter 參數名稱
SELECT name FROM v$parameter WHERE name LIKE
sga
系統全局區( SGA )是一個分配給 Oracle 的包含一個 Oracle 實例的數據庫的控制信息內存段
主要包括數據庫高速緩存 (the database buffer cache)
重演日志緩存( the redo log buffer )
共享池( the shared pool )
數據字典緩存( the data dictionary cache )以及其它各方面的信息
db_block_buffers
share_pool_size
log_buffer
sort_area_size
processes
global_names
db_block_size
open_links
dml_locks
open_cursors
dbwr_io_slaves
非安裝啟動
讀取 init
安裝啟動
數據庫日志歸檔
數據庫介質恢復
使數據文件聯機或脫機
重新定位數據文件
執行
但此時不對數據文件和日志文件進行校驗檢查
先執行
這種方式下可訪問數據庫中的數據
startup nomount
alter database mount
alter database open
約束方式啟動
這種方式能夠啟動數據庫
非特權用戶訪問時
ERROR
ORA
強制啟動方式
當不能關閉數據庫時
先關閉數據庫
帶初始化參數文件的啟動方式
先讀取參數文件
例
有三種關閉方式
正常方式關閉數據庫
立即方式關閉數據庫
在 SVRMGRL 中執行 shutdown immediate
而是在 Oracle 執行某些清除工作後才關閉(終止會話
當使用 shutdown 不能關閉數據庫時
直接關閉數據庫
如果數據庫中有大量操作正在執行
在
From:http://tw.wingwit.com/Article/program/Oracle/201311/16523.html