重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
1/s/1gfa3e63;這里是我在Oracle官網(wǎng)下載好了Windows系統(tǒng)64位的安裝包,有2個zip文件。不想去官網(wǎng)找下載地址的童鞋可以直接用這個百度云盤的下載鏈接。1.去下載最新的oracle11g安裝包的壓縮文件,有2個壓縮文件,都需要下載,下載完成以后需要解壓縮在同一個目錄下。在開始o(jì)racle數(shù)據(jù)安裝之前建議:1.關(guān)閉本機(jī)的病毒防火墻。2.斷開互聯(lián)網(wǎng)。這樣可以避免解壓縮丟失文件和安裝失敗。2.我在下載好2個zip文件后,都解壓在了database目錄中。如下圖:3.進(jìn)入database雙擊 setup.exe 開始安裝,在如下圖:4.出現(xiàn)如下選項,選擇是,繼續(xù)安裝。當(dāng)然這是我機(jī)器出現(xiàn)了這個情況,可能你的滿足要求了。。。5.取消勾,點擊下一步:6.Oracle在進(jìn)行安裝的時候都會詢問是否同時創(chuàng)建一個數(shù)據(jù)庫出來,此處選擇“創(chuàng)建和配置數(shù)據(jù)庫”。7.每一個數(shù)據(jù)庫可以想象為一個實例,所以此處表示只存在一個數(shù)據(jù)庫的含義8.此處選擇“高級安裝”。9.語言現(xiàn)在選擇支持“簡體中文”和“英文”。10.選擇“企業(yè)版”。11.此處設(shè)置Oracle的安裝目錄,將其安裝到app目錄下。12.選擇一般事物 13.此處輸入數(shù)據(jù)庫的名稱,同時SID與數(shù)據(jù)庫的名稱相同。14.使用默認(rèn)配置,如下圖:15.Oracle本身提供了多個操作用戶,為了簡單管理,所有的密碼都統(tǒng)一設(shè)置為“oracleadmin”。隨后將進(jìn)行安裝環(huán)境的檢驗,如果檢驗之中出現(xiàn)了錯誤,則會提示用戶,或者由用戶選擇“忽略”。16.選擇完成開始安裝17.而后進(jìn)入到了oracle的安裝界面。此界面會運行一段時間,在此界面完成之后出現(xiàn)的任何界面都不要點任何的確定按鈕,因為還需要進(jìn)行后續(xù)的配置。18.安裝完成之后會進(jìn)入到配置用戶口令界面,點擊 用戶口令 設(shè)置密碼。此界面之中需要進(jìn)行用戶名及密碼的配置,在使用Oracle數(shù)據(jù)庫過程之中,主要使用三個用戶(有三個用戶的密碼是public password,在實際中不可以使用):超級管理員:sys / change_on_install;普通管理員:system / manager;普通用戶:scott / tiger,此用戶需要配置解鎖;19.完成之后選擇“確定”那么再之后就可以進(jìn)入到安裝完成的界面,選擇“關(guān)閉”即可。20.在Oracle安裝完成之后,可以通過windows的服務(wù)找到所有與Oracle有關(guān)的服務(wù)選項。21.所有的服務(wù)建議將其全部修改為手工啟動,這樣電腦的啟動速度可以快一些。但是有兩個服務(wù)是必須啟動的:OracleOraDb11g_home1TNSListener:數(shù)據(jù)庫的監(jiān)聽服務(wù),當(dāng)使用任何的編程語言或者是前臺工具連接數(shù)據(jù)庫的時候,此服務(wù)必須啟動,否則無法連接;OracleServiceSYNC:指的是數(shù)據(jù)庫的實例服務(wù),實例服務(wù)的命名規(guī)范“OracleServiceSID”,一般SID的名稱都和數(shù)據(jù)庫的名稱保持一致,每一個數(shù)據(jù)庫的服務(wù)都會創(chuàng)建一個sid。這里我的數(shù)據(jù)庫的SID是sync。2. 使用sqlplus命令設(shè)置數(shù)據(jù)庫1.當(dāng)oracle安裝完成之后,下面就需要對其進(jìn)行使用,Oracle本身提供了一個“sqlplus.exe”的操作命令,直接運行此命令即可。2.此處輸入用戶名為scott,密碼為tiger。 3.在數(shù)據(jù)庫之中會存在多張數(shù)據(jù)表,那么下面發(fā)出一個查詢emp表的操作命令,輸入命令如下,默認(rèn)的顯示方式并不是特別的好,此處可以使用以下的命令更改顯示方式 4.在Oracle之中會存在多種用戶,如果要想切換不同的用戶,可以使用如下的命令完成,如果現(xiàn)在使用的是sys用戶登錄,那么就必須加上“AS SYSDBA”表示由管理員登錄,其他用戶不需要。CONN 用戶名/密碼 [AS SYSDBA] ;范例:使用sys登錄conn sys/change_on_install AS sysdba 如果要想查看當(dāng)前用戶輸入“show user”命令即可查看。show user 5.如果說現(xiàn)在使用sys用戶登錄,并且發(fā)出同樣的查詢命令,會發(fā)現(xiàn)找不到emp表的錯誤提示:6.因為這張表屬于scott用戶,所以當(dāng)使用scott用戶登錄的時候可以直接使用此表,但是如果換了一個用戶,那么就必須使用這個表的完整名稱“用戶名.表名稱”,emp屬于scott的,所以全名是“scott.emp”。以上所述是小編給大家?guī)淼腛racle11g數(shù)據(jù)庫win8.1系統(tǒng)安裝配置圖文教程,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
海豐網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
需要寫個bat腳本,然后在windows計劃任務(wù)里調(diào)用此腳本可實現(xiàn)每天自動備份。工具:Oracle10g步驟:1、在某個盤符某個路徑(以C盤data目錄為例),創(chuàng)建oraclebackup.txt文件,內(nèi)容如下:@echooffecho刪除10天前的備分文件和日志forfiles/p"c:/data/"/m*.dmp/d-10/c"cmd/cdel@path"forfiles/p"c:/data/"/m*.log/d-10/c"cmd/cdel@path"echo正在備份Oracle數(shù)據(jù)庫,請稍等……exp用戶名/密碼@實例名file=c:/data/mdb%date:~0,4%%date:~5,2%%date:~8,2%.dmplog=c:/data//mdb%date:~0,4%%date:~5,2%%date:~8,2%.logfull=ybuffer=65535echo任務(wù)完成!2、保存上述文件后,將文件名的后綴改成.bat3、進(jìn)入windows的控制面板,打開計劃與任務(wù),新建任務(wù),點擊瀏覽,選擇剛才新建的c盤data目錄下的oraclebackup.bat文件。接著選擇每天晚上22:00點執(zhí)行,再輸入本機(jī)的administrator密碼即可。注意事項:exp語句中的用戶名密碼等內(nèi)容,需要根據(jù)實際需要來填寫。
碎片檢查
select tablespace_name sqrt(max(blocks)/sum(blocks))*
( /sqrt(sqrt(count(blocks)))) fsfi
from dba_free_space
group by tablespace_name order by ;
fsfi值越小 碎片越大 自由空間碎片索引
檢查reverse_key index
select o object_name
from dba_objects o
where wner= DB_ACCT
AND O OBJECT_ID IN
(SELECT I OBJ# FROM SYS IND$ I
WHERE BITAND(I PROPERTY )= )
查具體后臺進(jìn)程號
select spid from v$session a v$process b where a PADDR=b ADDR and sid=
查看死鎖表
SELECT SID DECODE(BLOCK NO YES ) BLOCKER
DECODE(REQUEST NO YES ) WAITER
FROM V$LOCK
WHERE REQUEST OR BLOCK
ORDER BY block DESC;
查看剩余表空間
select a tablespace_name free/total* pct_free free/ / free(M) from
(select sum(bytes) free tablespace_name from dba_free_space group by tablespace_name) a
(select sum(bytes) total tablespace_name from dba_data_files group by tablespace_name) b
where a tablespace_name=b tablespace_name
order by pct_free;
查看創(chuàng)建索引的進(jìn)度
select sid message from? v$session_longops where sid = order by? start_time
查看繳費到帳
SELECT AREA_ID to_char(sysdate yyyy mm dd hh :mi:ss ) to_char(count( )) as cnt FROM ACCT_PAY_INTERFACE
WHERE PAY_DATE=sysdate and FLAG= group by AREA_Id
查看最消耗資源的sql
SELECT * FROM (SELECT PARSING_USER_ID EXECUTIONS SORTS MAND_TYPE
DISK_READS sql_text FROM v$sqlarea ORDER BY disk_reads DESC ) WHERE ROWNUM
查看占用系統(tǒng)資源的進(jìn)程號spid
SELECT a username a machine a program a sid a serial# a status c piece c sql_text
FROM v$session a v$process b v$sqltext c WHERE b spid= AND b addr=a paddr AND a sql_address=c address(+)
ORDER BY c piece
查看占用系統(tǒng)io較大的session
SELECT se sid se serial# pr SPID se username se status se terminal se program
se MODULE se sql_address st event st p text si physical_reads si block_changes
FROM v$session se v$session_wait st v$sess_io si v$process pr WHERE st sid=se sid AND st sid=si sid
AND se PADDR=pr ADDR AND se sid AND st wait_time= AND st event NOT LIKE %SQL% ORDER BY physical_reads DESC
對檢索出的結(jié)果的幾點說明
我是按每個正在等待的session已經(jīng)發(fā)生的物理讀排的序 因為它與實際的IO相關(guān)
你可以看一下這些等待的進(jìn)程都在忙什么 語句是否合理?
Select sql_address from v$session where sid=;
Select * from v$sqltext where address=;
執(zhí)行以上兩個語句便可以得到這個session的語句
你也以用alter system kill session sid serial# ;把這個session殺掉
應(yīng)觀注一下event這列 這是我們調(diào)優(yōu)的關(guān)鍵一列 下面對常出現(xiàn)的event做以簡要的說明
a buffer busy waits free buffer waits這兩個參數(shù)所標(biāo)識是dbwr是否夠用的問題 與IO很大相關(guān)的 當(dāng)v$session_wait中的free buffer wait的條目很小或沒有的時侯 說明你的系統(tǒng)的dbwr進(jìn)程決對夠用 不用調(diào)整 free buffer wait的條目很多 你的系統(tǒng)感覺起來一定很慢 這時說明你的dbwr已經(jīng)不夠用了 它產(chǎn)生的wio已經(jīng)成為你的數(shù)據(jù)庫性能的瓶頸 這時的解決辦法如下
a 增加寫進(jìn)程 同時要調(diào)整db_block_lru_latches參數(shù)
示例 修改或添加如下兩個參數(shù)
db_writer_processes=
db_block_lru_latches=
a 開異步IO IBM這方面簡單得多 hp則麻煩一些 可以與Hp工程師聯(lián)系
b db file sequential read 指的是順序讀 即全表掃描 這也是我們應(yīng)該盡量減少的部分 解決方法就是使用索引 sql調(diào)優(yōu) 同時可以增大db_file_multiblock_read_count這個參數(shù)
c db file scattered read 這個參數(shù)指的是通過索引來讀取 同樣可以通過增加db_file_multiblock_read_count這個參數(shù)來提高性能
d latch free 與栓相關(guān)的了 需要專門調(diào)節(jié)
e 其他參數(shù)可以不特別觀注
外部聯(lián)接 + 的用法
外部聯(lián)接 + 按其在 = 的左邊或右邊分左聯(lián)接和右聯(lián)接
若不帶 + 運算符的表中的一個行不直接匹配于帶 + 預(yù)算符的表中的任何行
則前者的行與后者中的一個空行相匹配并被返回 若二者均不帶 +
則二者中無法匹配的均被返回 利用外部聯(lián)接 +
可以替代效率十分低下的 not in 運算 大大提高運行速度 例如 下面這條命令執(zhí)行起來很慢
select a empno from emp a where a empno not in
(select empno from emp where job= SALE );
倘若利用外部聯(lián)接 改寫命令如下:
select a empno from emp a emp b
where a empno=b empno(+)
and b empno is null
and b job= SALE ;
可以發(fā)現(xiàn) 運行速度明顯提高
如何更改UNDO tablespace
create undo tablespace undotbs datafile D:\oracle\product\ \oradata\qa\undotbs dbf size M;
alter system set undo_tablespace=undotbs scope=both;
create pfile from spfile;
alter tablespace undotbs offline;
drop tablespace undotbs including contents;
將表改成
ALTER?? TABLE?? t_monitor_real_minute?? NOLOGGING;
Oracle RAC的參數(shù)文件和單實例參數(shù)文件不同 所以修改參數(shù)文件時需要注意
首先設(shè)置歸檔路徑
SQL alter system set log_archive_dest= /opt/oracle/archive scope=spfile sid= * ;
System altered
SQL select sid name value from v$spparameter where name= log_archive_dest ;
SID??????? NAME???????????????? VALUE
*????????? log_archive_dest???? /opt/oracle/archive
然后關(guān)閉兩個實例 啟動實例 更改數(shù)據(jù)庫為歸檔模式
SQL shutdown immediate;
Database closed
Database di *** ounted
ORACLE instance shut down
SQL startup mount;
ORACLE instance started
Total System Global Area bytes
Fixed Size????????????????? bytes
Variable Size???????????? bytes
Database Buffers????????? bytes
Redo Buffers?????????????? bytes
Database mounted
SQL alter database archivelog;
Database altered
SQL alter database open;
Database altered
SQL archive log list;
Database log mode????????????? Archive Mode
Automatic archival???????????? Enabled
Archive destination??????????? /opt/oracle/archive
Oldest online log sequence????
Next log sequence to archive??
Current log sequence??????????
lishixinzhi/Article/program/Oracle/201311/17504
要在sql下面執(zhí)行shell語句,用!符號,不過功能有限;有的時候打不到我們想要的效果!先給你兩個實例;
要在后臺登陸;plsql中測試不行
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options
SQL !echo 123;
123
SQL !/billing/user/xufc/
Local directory now /billing/Balance/SP/REALINCOME/FTRANS
Interactive mode off.
-rw-r--r-- 1 500 500 823038 Feb 17 06:27 340000PTSVDA002012021714210800000000.gz
-rw-r--r-- 1 500 500 33 Feb 17 06:27 340000PTSVDA002012021714210800000000.md5
其中需要用絕對路徑;該腳本里面的內(nèi)容只是ls一下;就這樣了
oracle啟停腳本應(yīng)該分開放。
腳本都是文本格式的,通常腳本的后綴名為.sh(windows系統(tǒng)下.bat)或者沒有后綴名。
如果要手動執(zhí)行該腳本,通常是需要當(dāng)前用戶為oracle用戶或者有相應(yīng)數(shù)據(jù)庫訪問權(quán)限的用戶的。
你可以把你連接oracle的shell命令,同樣的放到你的腳本里即可。原則上,只要你的那些命令能正常運行,那么你的腳本就能正常連接數(shù)據(jù)庫了!
批量插入數(shù)據(jù)腳本
1、第一種批量插入數(shù)據(jù)腳本,可以基本滿足要求。理解上較為簡單,所以這個最常用。
NEXTVAL和CURRVAL的區(qū)別:
1、如果 sequence.CURRVAL 和 sequence.NEXTVAL 都出現(xiàn)在一個 SQL 語句中,則序列只增加一次。在這種情況下,每個 sequence.CURRVAL 和 sequence.NEXTVAL 表達(dá)式都返回相同的值,不管在語句中sequence.CURRVAL 和 sequence.NEXTVAL 的順序。
執(zhí)行腳本結(jié)果如下:
3、兩個表,同時批量插入數(shù)據(jù)的腳本
3、
4、 涉及子表時,批量插入數(shù)據(jù)腳本,
5、 批量修改數(shù)據(jù) :
時間取數(shù)方式:
一、SYSTIMESTAMP(取當(dāng)前系統(tǒng)值)
二、SYSDATE(取當(dāng)前系統(tǒng)值,但只精確到時,分和秒都為0)
三、固定值為:TO_TIMESTAMP ('2019-2-12 15:24:45.703000', 'yyyy-mm-dd hh24:mi:ss.ff6')
把固定的字段改為變量:
方式一:’||i||’ 例:’{“no”:“111’||i||’”}’(此方式)
方式二:concat 例:concat(concat(’{“blNo”:111"’,i),’"}’)