redhat開源版本(如centos)oracle安裝事宜
-1.hareware required:
at least 1G physical memory (移動的海量記憶體250G)
swap > physical memory *1.5
/tmp >400m
補丁patch:
rpm -ivh compat-oracle-rhel4-1.05.i386.rpm 可打可不打,在生產環境中最好打,需網路下載
rpm -ivh /mnt/cdrom/redhat/rpms/libaio-0.3.102-1.i386.rpm 也是一個補丁,也是可打可不打,這兩個包不影響現在的安裝
yum install -y libXp 這個包要裝,否則裝oracle和執行都會出現問題
-2.create database:
groupadd dba
groupadd oinstall
useradd oracle -g oinstall -G dba
passwd oracle
mkdir -p /opt/oracle/product/10g
mkdir /opt/oracle/database
chown -R oracle.oinstall /opt/oracle
chmod 755 -R /opt/oracle
-3.configure environment 變數
vi ~/.bash_profile
export ORACLE_BASE=/opt/oracle/
export ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_SID=orcl SID不要超過8位,超過8位會自動只取前8位
export PATH=$ORACLE_HOME/bin:$PATH
source ~/.bash_profile source一下使他生效
-4.modify kernel parameter
vi /etc/sysctl.conf
kernel.shmmax = 2148483648
kernael.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
sysctl -p 使生效
配置這些引數是為了更好的支援oralce,具體意思要查詢相關文件,如果用oralce公司的linux系統就不用了,它已經調好了
注意這些引數寫的時候等號兩邊要有空格,否則用vim看sysctl檔案顏色會變
-5.vi /etc/pam.d/login
session required /lib/security/pam_limits.so
vi /etc/security/limits.conf 檔案限制
oracle soft nproc 2047
oracle hard nporc 16384
oracle soft nofile 1024
oracle hard nofile 65536
然後把oracle的安裝包拷過來10201_database_linux32.zip
解壓unzip 10201_database_linux32.zip -d /opt/oracle/ 下 也可以解壓到別的地方 不要解壓到/opt/oracle/product/10g下,因為這是資料庫10g的家目錄
然後在root使用者下用xhost + 給oralce使用者一個圖形安裝介面
再su - oracle切換到oralce使用者
cd /opt/oracle/database
有一個runinstaller的檔案
./runinstaller 就可以用圖形安裝了 (見圖1)
設定一個密碼,要求以字元開頭的密碼,數字開頭的不行
上面的是基礎安裝,下面的是高階安裝,這裡預設就用上面的基礎安裝
點下一步
--(問題:當開啟圖形時出現的亂碼情況,就要去root使用者檢視一下語言環境,並改為中文,vi /etc/sysconfig/i18n 或者export lang=en_US )
(見圖2) 直接下一步
(見圖3) 這裡會check你的安裝要求是否都透過,透過的有succeeded,錯誤會顯示error,或者警告warning 資訊,並會在下方顯示,根據他的提示來修改
(見圖4)這裡點password management 可以改密碼,(見圖5)看到目前只有SYS和SYSTEM兩個管理使用者是解鎖的,別的使用者都是鎖著的,這裡先不解鎖點OK到下一步
安裝完後,會提示要用root使用者再執行這兩個指令碼(也可以安裝完後再做),這時可以再開一個終端用root使用者執行完這兩個指令碼(執行時會告訴你這兩個指令碼做了什麼,只是改了下目錄許可權和確認了一下環境變數等),再點OK完成安裝
sqlplus "/as sysdba" 能登入表示安裝OK
裝完後
要支援在oracle命令裡支援上下翻頁要裝三個包
IO-Tty-1.07.tar.gz Term-ReadLine-Gnu-1.16.tar.gz uniread-1.01.tar.gz
cd $IO-Tty/
cd $Term-ReadLine-Gnu/
cd $uniread/
perl Makefile.PL;make;make install 這三個軟體都要編譯
whereis uniread 看是否有這個命令
su - oracle
~/.bash_profile
加一句 alias sql="uniread sqlplus"
source .bash_profile 使之生效
然後要用sql "/as sysdba"去登入才能翻頁, 因為sql命令是uniread sqlplus的別名
用sqlplus "/as sysdba"也能登入,但不能翻頁
--############################################################
linux下完全解除安裝oralce 10g (在AIX系統下也可行,別的系統還未經測試)
-1.$ORACLE_HOME/bin/localconfig delete 用root使用者執行
-2.rm -rf $ORACLE_BASE/ * 用oracle使用者執行
-3.rm -rf /etc/oraInst.loc /etc/oratab 用root使用者執行
-4.rm -rf /etc/oracle 用root使用者執行
-5.rm -rf /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv 用root使用者執行
-6.userdel oracle groupdel dba groupdel oinstall 要完全解除安裝就要把使用者和組也刪掉
上面都是安裝時要寫入的檔案,要這樣來解除安裝, 直接rm 掉oracle家目錄是不行
--##############################################################
管理員職責:管理資料庫正常可用。
根據開發要求設計建立資料庫
管理物理結構
管理與設計規劃儲存
管理與維護安全性
網路配置與管理 (net8協議)
備份與恢復保證資料的完整與可靠性。
資料庫效能監控與調整。
DG:資料的保護與容災。 data guard (standby database)
RAC :real application cluster 實現instance叢集
開發方向的DBA:plsql java php c/c++ EBS
oracle軟體是30%c/c++和70%java
學習: 熟練它的結構;
熟練所有的操作命令(非圖形);
熟練效能維護的檢視或工具,如:statspack/wait interface event
邏輯結構,體系結構。
oracle啟動指令碼:
dbstart
dbshut
要用上面的指令碼,要更改下面兩個配置檔案。
[oracle@stu140 bin]$ vi /etc/oratab
orcl:/opt/oracle/db/10g:Y
[oracle@stu140 bin]$ vi $ORACLE_HOME/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME
也可以自己手動寫指令碼:
sql /nolog <
startup
EOF
sql /nolog <
shutdown immediate
EOF
--#####################################################################################################################
oracle安裝後的元件介紹:
$ORACLE_HOME/bin 目錄下 包括了很多工具(其中就有重要的sqlplus)
sqlplus "/as sysdba" 或者sqlplus '/as sysdba' 或者sqlplus / as sysdba (/後面有個空格) 這裡不用密碼登入上,因為是用oracle使用者去登入的,它是屬於dba組的(前面裝oracle時做過這個步驟)
$ORACLE_HOME/network/admin 目錄下是做網路配置的 可以直接vi 來改,也可以用netmgr這個命令來圖形配置(不過用這個命令配置的話,先確認這個目錄下沒有listener.ora和tnsname.ora檔案,這樣才可以去用圖形新建)
host 寫上主機名或者IP 注意主機名不要寫錯,否則會啟不了監聽 --(見圖7)
上面選database service 下面點add database --(見圖8)
改一下global database name 確認家目錄 和SID沒錯 --(見圖9)
再改tnsname.ora
選擇tnsname.ora後 點左上角的綠色+號 寫一個網路服務名,隨便寫,比如我要連66就寫一個o66 --(見圖10)
選擇連線方式,這裡有三種方式,這裡選擇TCP 下一步 --(見圖11)
填寫遠端伺服器IP或者地址 --(見圖12)
填寫遠端伺服器庫名 下面選擇dedicated server (也可以選擇共享模式) --(見圖13)
再點finish完成,最後點右上角的X 會問你是否儲存,儲存退出
配好後 可以看一下
vi listener.ora 這是監聽檔案,如果是伺服器端只要配這個就可以了
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /opt/oracle/product/10g)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = li.lll.com)(PORT = 1521))--(這是本機的主機名,監聽埠預設為1521,用TCP連線)
)
vi tnsname.ora 客戶端遠端登入別人要配置這個
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = li.lll.com)(PORT = 1521)) --(這就表示能登入li.lll.com這臺主機,或者寫上IP,)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
o212 = --(隨便改個名,遠端登入時要用,這是網路服務名,是客戶端自己給遠端伺服器取的名)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.212)(PORT = 1521)) --(這裡表示能登入10.1.1.212,這一大段是把上面一段直接拷一份修改就行)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl) --(這裡是伺服器端的服務名)
)
)
lsnrctl start 命令啟動監聽 然後netstat -ntl | grep 1521 看到埠起來了
lsnrctl stop 關閉監聽
lsnrctl stat 檢視監聽狀態
遠端登入方法:
sqlplus sys/oracle@o212 as sysdba 來遠端登入
這就是一個C/S模式, 有時會給你一個測試庫的IP和密碼 讓你去做一份工作, 遠端登入就是第一步
如果客戶機沒有,
ORACLE支援大併發(支援幾千個session併發,比如10086的查話費餘額,在移動裡還算小的庫,併發也是幾千的)
--#################################################################
資料庫的三種
RDBMS 關係型資料管理系統 mysql是這種 做一個外掛能支援物件中的類
ODBMS 物件資料管理系統
ORDBMS 又是關係又是物件 oracle是這種
sqlplus /nolog 不連線登陸
conn /as sysdba 用超級管理員身份連上
startup 可以啟動
shutdown immediate 關閉
SQL> alter user scott identified by tiger account unlock; 選擇scott使用者密碼為tiger 並解鎖 在10i裡是鎖的 9i裡是預設沒鎖的
SQL> conn scott/tiger 用scott使用者連入 或者直接在最外面用sql scott/tiger連
SQL語句
先用scott這個使用者來測試(ORACLE建立的用來測試的使用者,這個使用者下有幾張表用來做測試的,預設是鎖的,要解鎖)
SQL> alter user scott identified by tiger account unlock; 設定scott使用者密碼為tiger,並解鎖 (不過預設它的密碼也是tiger)
User altered.
SQL> grant connect,resource to scott; 授權
Grant succeeded.
conn scott/tiger 用scott使用者連線
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
SQL> desc emp
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
SQL> select ename,sal,hiredate from emp; 不區分大小寫
ENAME SAL HIREDATE
---------- ---------- ---------
SMITH 800 17-DEC-80
ALLEN 1600 20-FEB-81
WARD 1250 22-FEB-81
JONES 2975 02-APR-81 --(字串和時間型別是預設是左對齊,數值是右對齊,這裡是複製的,所以不夠齊~.~)
MARTIN 1250 28-SEP-81
BLAKE 2850 01-MAY-81
CLARK 2450 09-JUN-81
SCOTT 3000 19-APR-87
KING 5000 17-NOV-81
TURNER 1500 08-SEP-81
ADAMS 1100 23-MAY-87
ENAME SAL HIREDATE
---------- ---------- ---------
JAMES 950 03-DEC-81
FORD 3000 03-DEC-81
MILLER 1300 23-JAN-82
14 rows selected.
SQL結構查詢語言
包括DQL 資料查詢語言 主要指select
DDL 資料定義語言 主要指create alter drop rename truncate (這些語句一執行不能回退)
DCL 資料控制語言 主要指grant revoke
DTL 資料事物語言 主要指commit rollback savepoint
DML 資料操縱語言 主要指 insert update delete merge
列的別名:三種方法
空格後接別名
as 別名
“別名” 當別名裡有空格或者特殊字元時就用雙引號括起
字串:
日期和字元只能在單引號出現
SQL> select ename|| ' sal is '||sal from emp; 連線符
ENAME||'SALIS'||SAL
----------------------------------------------------------
SMITH sal is 800
ALLEN sal is 1600
WARD sal is 1250
JONES sal is 2975
MARTIN sal is 1250
BLAKE sal is 2850
CLARK sal is 2450
SCOTT sal is 3000
KING sal is 5000
TURNER sal is 1500
ADAMS sal is 1100
ENAME||'SALIS'||SAL
----------------------------------------------------------
JAMES sal is 950
FORD sal is 3000
MILLER sal is 1300
14 rows selected.
SQL>select sal.(sal+100)*12 from emp; (把sal加上一百再12倍)
有+ - * / ()等運算
SQL>select sal.(sal+100)*12 asal from emp; (別名為asal,但預設為大寫)
SQL>select sal.(sal+100)*12 “asal“ from emp; (這樣別名就為小寫的asal,sql語句不區分大小寫,但在單或者雙引號下就區分大小寫)
SQL>clear screen 清屏命令 支援簡寫 可以SQL>cle scr
不屬於SQL語句的可以不用; SQL語句就要用;
SQL>spool /vmware/oracle/bak/emp.txt
SQL>select ename,sal from emp;
SQL>spool off
這三句可以把emp表的ename,sal項的內容寫到emp.txt裡
SQL>ho cat /vmware/oracle/bak/emp.txt 用ho接shell命令直接呼叫shell的命令
SQL>! 打完!號再可以輸入shell命令
當寫錯了 替換方法
SQL>select ename,sa from emp; 這一句sa寫錯了
SQL>l 1 選擇1
SQL>c/sa/sal sa換成sal
SQL>/
SQL>/
SQL>run
SQL>r 這三條命令是執行前一次執行的SQL語句
SQL>select empno..............................from emp; 很長的一條SQL語句
SQL>save /vmware/oracle/bak/1.sql 把這個很長的語句儲存下來方便下次用 要以.sql結尾
SQL>@ /vmware/oracle/bak/1.sql 執行它 最後用1或者1.sql都可以
SQL>start /vmware/oracle/bak/1 這種也可以 最後1或者1.sql
SQL>get /vmware/oracle/bak/1 這種也可以 get只是把它讀到快取裡還沒執行
SQL>l 1 檢視發現讀進來了 可以看清是要執行的再用run / r 三種之一執行
SQL>run
SQL書寫標準
大小寫不區分,單引或者雙引裡的要區分
關鍵字不能省略 如select from
可以分行寫,但關鍵字和單雙引內的不能分行寫
別名一般用雙引
字串用單引
別名的好處
SQL>select ename as "ename",job from emp;
1,非法語句合法化 30個字元以上的名字會報錯 用別名就不會
2.
3.做子查詢的別名,讓子查詢語句可以執行
去除重複行
SQL>select distinct deptno from emp; 去掉deptno裡的重複行 這個要排序
SQL>select unique deptno from emp; 也是去掉重複行 這個不要排序 效率要高點
SQL>select ename from emp where sal>3000; 用where做查詢限制 查出所有工資大於3000的
SQL>select ename from emp where sal between 2000 and 3000; 查工資大於2000小於3000的
SQL>select ename from emp where sal sal>=2000 and sal<=3000; 用執行符查
SQL>select ename from emp where sal in(3000,5000); 查工資為3000或者5000的
SQL>select ename from emp where ename like 'A%'; 查詢匹配A開頭的 - 短橫匹配一個字元 %多個字元 s-轉義 s%轉義
SQL>select ename from emp where ename like '--A'; 查詢三個字元 第三個字元為A的項
SQL>insert into emp (empno,ename,sal) values (51,'B%123',10000);
SQL>select ename from emp where comm is not null; 查詢非空值 有獎金的員工 空值這裡沒有資金 空值也會佔一個位 只是現在沒有值
SQL優先順序別
1算術
2|| (連線字串用)
3關係
4 is null/is not null, like ,in
5 between
6 not (取反)
7 and
8 or
SQL>select sal from emp order by sal asc; 升序排列
SQL>select sal from emp order by sal desc; 降序排列
SQL>select sal from emp order by sal 2 desc;
小練習:
查詢部門為30的員工名字,職位,薪水
SQL> select ename,job,sal from emp where deptno=30;
查詢字元最後為N的員工的上級領導是哪個
SQL> select mgr from emp where ename like '%N';
顯示員工名字,上班日期,反序排列
SQL> select ename,hiredate from emp order by hiredate desc;
顯示10部門員工 按照ename "sal is:"sal,
SQL> select ename||' sal is: '||sal||' ,comm is:'||comm from emp;
今天一個同事問我在的時候出現了
Exception in thread "main".lang.InternalError: Can't connect to X11 window
using '
這個錯誤是為什麼,其實我知道是由於當前使用者不是或者環境變數設定的不正確導致的,因為每次都是用oracle使用者解壓,安裝,沒有遇到這個問題,所以也沒有仔細研究過這個錯誤,今天正好同事問到我這個問題,如果不回答清楚了顯的我很不專業,呵呵,在這裡簡單說明一下自己的理解:
cause:
X-Windows emulation is not yet correctly configured or is being mis-used.
solution:
1.Make sure that "DISPLAY” is set properly as either:
or
note:In this example, ip_address/hostnameis
the host name or IP address of the system that you want to use to
display Oracle Universal Installer (your workstation or PC).
eg.[root@rac1 ~]# xhost +
access control disabled, clients can connect from any host
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ export DISPLAY=192.16.2.98:0.0
[oracle@rac1 ~]$ cd database/
[oracle@rac1 database]$ ./runInstaller
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Passed
All installer requirements met.
Preparing
to launch Oracle Universal Installer from
/tmp/OraInstall2009-03-05_03-36-28PM. Please wait ...[oracle@rac1
database]$ Oracle Universal Installer, Version 10.2.0.1.0 Production
Copyright (C) 1999,, Oracle. All rights reserved.
2.
Oracle Customer Support has seen instances where use of the UNIX/Linux
“su” command, even “su - oracle” has caused this “Can't connect to X11
window server” error. Therefore, please be sure that you are LOGGED ON
as the oracle account. Log directly into the install session. Do not use
any variety of “su”.
use oracle log on , not "su - oracle"
eg. [oracle@rac1 database]$ ./runInstaller
3.Oracle Customer Support has seen instances where the incorrect “ulimit” setting for number of files (aka “-n”, aka “nofiles”) has caused this “Can't connect to X11 window server” error. Therefore, please be sure that your values for “nofiles” in the output of “ulimit -a” is at least 65536.
備註:前2個辦法只需要滿足其中一個就可以避免這個錯誤了:直接用oracle登陸,不能su - oracle or 設定display=ip_address_that you want to use to display Oracle Universal Installer:0.0
注意在給了xhost +以後
圖形安裝直接這樣 su oracle
然後執行安裝指令碼
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23141985/viewspace-703165/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 安裝centOS版本oracleCentOSOracle
- centOS(同redhat)安裝 dockerCentOSRedhatDocker
- Oracle安裝部署之linux(redhat/centos)快速安裝oracle 11g racOracleLinuxRedhatCentOS
- RedHat Linux安裝CentOS YUMRedhatLinuxCentOS
- Redhat/Centos6.x安裝ChromeRedhatCentOSChrome
- redhat修改yum源(CENTOS)RedhatCentOS
- RedHat Linux 本地Yum源安裝RedhatLinux
- CentOS加入RedHat 攜手推進開源革新CentOSRedhat
- [oracle]centos 7 安裝oracleOracleCentOS
- centos換源+安裝postgresqlCentOSSQL
- centos下安裝oracleCentOSOracle
- CentOS 6.5安裝Oracle 11.2.0.4------CentOS 6.5安裝CentOSOracle
- Centos7或RedHat7下安裝MysqlCentOSRedhatMySql
- Redhat+Oracle+SAP Netweaver 安裝RedhatOracle
- 【安裝】RedHat 5.1 部署Oracle 10.2.0.1RedhatOracle
- redhat 6.4 安裝oracle11g RAC 安裝RDACRedhatOracle
- (轉)redhat下安裝oracle,設定redhat核心引數RedhatOracle
- Centos下安裝git高版本2.1.2CentOSGit
- REDHAT6.5上安裝 iRedMail-0.9.5 開源郵件伺服器安裝方案RedhatAI伺服器
- Oracle 12C Centos7.4桌面版本安裝OracleCentOS
- Redhat 5 下 Oracle10g 安裝RedhatOracle
- RedHat AS3安裝Oracle 8iRedhatS3Oracle
- 在Linux(Redhat/CentOS)下安裝MySQL之yum(rpm)線上安裝方式LinuxRedhatCentOSMySql
- CentOS下安裝社群版本MySQL5.5.8CentOSMySql
- RedHat/CentOS發行版本號及核心版本號對照表RedhatCentOS
- redhat安裝dockerRedhatDocker
- centos安裝oracle客戶端CentOSOracle客戶端
- 在Linux(Redhat/CentOS)下安裝MySQL之yum(rpm)離線安裝方式LinuxRedhatCentOSMySql
- RedHat上靜默安裝Oracle11gRedhatOracle
- redhat7.6安裝Oracle11G RACRedhatOracle
- Oracle 18c_for_Redhat6.4 安裝失敗OracleRedhat
- RedHat 7 靜默安裝Oracle11gRedhatOracle
- RedHat6.5 安裝Oracle 12c RACRedhatOracle
- redhat6.2安裝oracle11.2.0.3RACRedhatOracle
- oracle11g 安裝(redhat linux 5)OracleRedhatLinux
- RedHat AS4 下安裝oracle10gRedhatOracle
- Redhat AS 4安裝Oracle 10g 10.2.0.3.0RedhatOracle 10g
- 在Redhat9下安裝Oracle9RedhatOracle