三
LINUX和UNIX下
轉到操作系統下執行:kill
spid (以上語句所查出的)
ORACLE中檢查表是否被鎖的語句
SELECT A
OWNER
A
OBJECT_NAME
B
XIDUSN
B
XIDSLOT
B
XIDSQN
B
SESSION_ID
B
ORACLE_USERNAME
B
OS_USER_NAME
B
PROCESS
B
LOCKED_MODE
C
MACHINE
C
STATUS
C
SERVER
C
SID
C
SERIAL#
C
PROGRAM
FROM ALL_OBJECTS A
V$LOCKED_OBJECT B
SYS
GV_$SESSION C
WHERE ( A
OBJECT_ID = B
OBJECT_ID )
AND (B
PROCESS = C
PROCESS )
ORDER BY
殺掉
alter system kill session
sid
serial#
ORACLE的登錄問題
用戶名和密碼
可以直接輸入
internal/oracle@serivce_name
sys/change_on_install@serivce_name
system/manager@serivce_name
scott/tiger@serivce_name
注意
i中沒有internal/oracle
如果選擇典型安裝則有 scott用戶
如果自定義可以不安裝 scott用戶
如果是本機則可以省略@serivce_name
oem:(ORACLE ENTERPRISE MANAGER)
sysman/oem_temp
修改表的列名
Oracle
i:
alter table xxx rename column xx to yy;
Oracle
i & lower version
connect sys/passed;
update col$ set name=xx where obj#=對象id and name = 字段
(一般不要這樣用
會造成意想不到的結果)
注
最好是刪除再建立新的列
把用戶模式對象所在的表空間移到新的表空間
(
)
create the new tablesapce
(
)
alter user test default tablespace test_data;
(
)
alter user test quota unlimited on test_data;
(
)
alter table the_table_name move tablespace test_data;
生成腳本
select
alter table
||tname||
move tablespace test_date;
from tab
where tabtype=
TABLE
(
)
rebuild the indexes;
使用OEM備份或者EXP的步驟
WIN
下
(
)
控制面板――>管理工具―― >計算機管理――>本地用戶和組――>用戶――>新建用戶sys和sysman(sys和sysman 的帳號要和登陸數據庫的帳號相同)
(
).控制面板――>管理工具―― >本地安全策略――>本地策略――>用戶權利指派――>
作為批處理作業登陸――>添加sys和sysman兩個帳號
(
).使用Enterprise Manager配置輔助工具
開始→程序→Oracle
OraHome
→Enterprise Manager→Configuration Assistant
a
使用Configuration Assistant工具來創建一個新的資料檔案庫
(
).控制面板――>管理工具―― > 服務
查看OracleOraHome
ManagementServer是否啟動
如果沒有啟動
則手動啟動該服務
(
).以sysman/oem_temp(default)登陸DBA Studio
(第二個選項
登陸到Oracle Management Server)
立即修改密碼為你剛才在NT下建的用戶sysman的密碼
(
). 以sysman/ *** (bluesky) 從開始→程序→Oracle
OraHome
→Console 登陸到 控制台
在 系統→首選項→首選身份證明(我的首選身份設置如下
)
DEFAULT節點
name:sysman
DEFAULT數據庫
name:sys
(
). 在搜索/添加結點後
以sysman/ *** 登陸到該結點
以sys/ *** as sysdba登陸數據庫(也就是在首選身份設置的結果)
(
). 在工具→備份管理→向導→預定義備份策略(自定義備份策略)→提交備份計劃
(
).從開始→程序→Oracle
OraHome
→Console 登陸到 控制台
查看活動(歷史記錄)可以看到你的備份是否成功
如果不成功
可以點擊備份看明細
(我第一次也沒成功
後來我修改系統的臨時目錄C:\WINNT\Temp→c:\temp\systmp
重新啟動機器就ok了)
如何修改INTERNAL的口令
以下是oracle
的
i你可以仿照來做
(
)
進入DOS下
(
)
默認internal密碼文件在c:\orant\database下
是隱藏屬性
文件名稱與數據庫實例名有關
如默認ORACLE實例名為ORCL
則internal密碼文件名為pwdorcl
ora
(
)
建立新的internal密碼文件
起個新名字為pwdora
ora
orapwd
file=pwdora
ora password=B entries=
注
password項一定要用大寫
並且不要用單引號
(
)
拷貝pwdora
ora文件到c:\orant\database目錄下
(
)
運行regedit
修改口令文件指向
(
)
找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE項
定位ORA_ORCL_PWFILE子項
改變其值為c:\orant\database\pwdora
ora
(
)
關閉ORACLE數據庫
重新啟動
(
)
進入svrmgr
服務程序
測試internal密碼是否更改成功
憑證檢索失敗的決絕方法
原因: 由於Oracle不能應用OS認證而導致憑證檢索失敗
解決辦法:
(
)
打開network/admin下的sqlnet
ora
修改SQLNET
AUTHENTICATION _SERVICES=(NONE)
(
)
啟動Net
configuration assistant
>選第三項本地網絡服務名配置
>刪除
(刪除原來的本地網絡服務名)
(
)
重復第二步
>添加
(新建本地網絡服務名)
(
)
restart oracle
注意
NTS是WinNT的認證方式
命令行編譯存儲過程
ALTER PROCEDURE procedure_name COMPILE;
關於如何建立數據庫鏈接(DBlink)
可以通過建立客戶機數據庫網絡服務名的辦法
將服務器的名字或是IP地址設置為你需要連接的那個機器就行
如果你要在一個應用中連接它
現在做好上步工作
然後按如下處理
建立數據庫連接
CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING
NetServiceName
;
DBaseLinkName 是建立的數據連接名稱
UserName 是可以連接到的用戶名
Password 是可以連接到的用戶的密碼
NetServiceName 是可以連接的數據庫網絡服務名或是數據庫名
查詢建立數據連接的表實例
Select * From TableName@ DBaseLinkName;
注意
如果在CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING
NetServiceName
;中NetServiceName 是數據庫名修改init
ora中
global_names = true
否則global_names = false
init
ora中
global_names = false
Object Browser
中文版的破解方法
到OBJECT BROWSER的目錄裡
找到DeIsL
isu文件
用記事本打開
看到的是亂碼吧?沒關系
將Stirling Technologies
Inc 這個字符串前面的亂碼去掉(如果有的話)
讓後在Stirling之前加一個空格(一定要加的)
保存
退出
重新運行一下看看
雖然還有提示輸入驗證信息
但是不用管他
直接確定就行
是不是可以用了呢?保證好使
錯誤號ORA
:space quota exceeded for table space
ALCATEL
的解決辦法
三個解決辦法
任你選擇
(
) alter user USERNAME quota
M on TABLESPACENAME;
(
) alter user USERNAME quota unlimited on TABLESPACENAME;
(
) grant unlimited tablespace to USERNAME;
如何在Oracle中捕獲到SQL語句的全部操作內容
SELECT osuser
username
sql_text from v$session a
v$sqltext b
where a
sql_address =b
address order by address
piece;
ORACLE中如何實現自增字段
(
)第一種方法
ORACLE一般的做法是同時使用序列和觸發器來生成一個自增字段
CREATE SEQUENCE SEQname
INCREMENT BY
START WITH
MAXVALUE
/
CREATE TRIGGER TRGname
BEFORE INSERT ON table_name
REFERENCING
NEW AS :NEW
FOR EACH ROW
Begin
SELECT SEQname
NEXTVAL
INTO :NEW
FIELDname
FROM DUAL;
End;
(
)第二種方法
CREATE OR REPLACE TRIGGER TR
BEFORE INSERT ON temp_table
FOR EACH ROW
declare
com_num NUMBER;
BEGIN
SELECT MAX(ID) INTO COM_NUM FROM TEMP_TABLE;
:NEW
ID:=COM_NUM+
;
END TR
;
job的使用
修改initsid
ora參數
job_queue_processes =
i
i (允許同時執行的JOB數)
job_queue_interval =
i
job_queue_keep_connections=true
i
DBMS_JOB
SUBMIT(:jobno
//job號
your_procedure;
//要執行的過程
trunc(sysdate)+
/
//下次執行時間
trunc(sysdate)+
/
+
//每次間隔時間
);
刪除job:dbms_job
remove(jobno);
修改要執行的操作:dbms_job
what(jobno
what);
修改下次執行時間
dbms_job
next_date(job
next_date);
修改
From:http://tw.wingwit.com/Article/program/Oracle/201311/16627.html