經過了幾天的摸爬滾打,終於成功的能在宿主機上(window10上的Plsql)去成功的連上虛擬機上的centos數據庫
下面將自己的經驗分享給大家:
具體的centos7、centos6上安裝Oracle11g的過程可以見下面:
- linux安裝Oracle11G
- 0、下載Orcle11G
- 1、上傳文件到服務器或虛擬機的/install目錄下
- 2、解壓文件到當前目錄:
- 3、關閉selinux
- 4、關閉防火牆
- 5、安裝Oracle 11g依賴包
- 6、添加安裝用戶和用戶組
- 7、修改內核參數配置文件
- 8、修改用戶的限制文件
- 9、創建安裝目錄和設置文件權限
- 10、設置oracle用戶環境變量
- 11、編輯靜默安裝響應文件
- 12、根據響應文件靜默安裝Oracle11g
- 13、以靜默方式配置監聽 ----------------->自己在這以及下面的位置出了問題:自己一定要注意(並不是說這種方式有 問 題,只是自我感覺從這之后在圖形界面創建一個數據庫實例以及去配置監聽 不 會走那么多的彎路,而且配置的監聽也更容易生效!!!!)
- 14、以靜默方式建立新庫,同時也建立一個對應的實例
- 15、命令行模式靜默刪除
自己的錯誤點總結:對於使用上面的方式在第13步不知道是否是出錯了,但是到了14步,自己按照里面在設置新的數據庫實例的一些參數的時候,有一些沒有設置,比如SID \GDBNAME的值好像都沒有設置對,所以在未發現之前,所有的配置都配置完畢之后出了下面的一大堆的問題(
問題:1、自己在centos上可以用sqlplus sys/自己的密碼 as sysdba 能正常的登錄到數據庫中,但是用在sys登錄后創建的用戶newuser登錄就登不上(登錄語句:sqlplus newuser/自己的密碼@orcl), @后面的orc是自己創建數據庫實例的時候起的名稱,也是SID,一般自己配置的SID和Global Database Name
配置的數據庫如下圖中的orcl
2、用sqlplus newuser/newuser@orcl248登錄不成功,但是用sqlplus newuser/newuser登錄能登上,是因為@orcl的時候,能成功的連上,因為此時不加@數據庫實例ID的話,默認的是連接到默認的庫上的,而當加上@orcl248之后,是想通過orcl248(連接描述符)這個連接串的名稱去連接到特定的那個數據庫(特定的數據庫指:SERVICE_NAME:服務器服務名稱 也就是下面的orcl)
tnsnames.ora中的內容
客戶端為了遠程連接服務器,必須先和服務器上的監聽進程聯絡,Oracle通過tnsnames.ora文件中的連接描述符來說明連接信息。
名詞解釋:
ORCL248:連接描述符
address_list:表示客戶端經由多種協議與一台或多台服務器連接。在上面的例子中表示客戶端使用TCP協議與服務器端連接。
PROTOCOL:使用的協議
HOST :是TCP/IP協議使用的服務器IP地址。
PORT :是TCP/IP使用的端口地址。
CONNECT_DATA: 連接數據庫的連接配置
SERVER=DEDICATED: 表示用專用服務器連接oracle數據庫
SERVICE_NAME:服務器服務名稱
3、自己在window宿主機上通過PLSQL dev登錄的時候,出現錯誤:window連接centos上的oracle'出現ora12514:tns監聽程序當前無法識別
解決的辦法可以參考:
解決windows7無法連接CentOS7系統中oracle問題:ORA-12514 TNS 監聽程序當前無法識別(https://blog.csdn.net/u010915017/article/details/80430386)
試過這些東西方法之后,自己的問題還是沒有解決:接着請教了大神,說是先將現有的database(orcl248)刪除
,之后再去重新創建一個新的oracle實例sid為orcl,因為之用的是上面呢的 教程 linux安裝Oracle11G 去靜默建立的database實例和靜默配置的監聽,但是出了問題(初步鑒定為自己的第 12、根據響應文件靜默安裝Oracle11g 中設置出了錯,
)
第二次重新的按照centos 7和Oracle11g,直接從0步走到了14步,但是還是本地的sys可以連、本地sys登錄上之后創建的用戶newuser不加@orcl可以連,加了不可以連 遠程還是不可以連。
自己的問題的成功的解決
最終自己將數據庫實例orcl248刪除,之后通過帶gnome圖形界面的centos 7 調出圖形界面(
Oracle創建新數據庫,新用戶,以及連接此用戶的方法心得 https://blog.csdn.net/jiaruochao/article/details/52128719
)
用終端輸入dbca調出下面的那個界面
成功的以創建 了一個oracle數據庫實例
在創建的過程中遇見的問題:由於默認的數據庫的文件存儲的位置一般是選擇圖中是選項,但是自己當選了默認的之后,再后面的步驟中一直無法走動,提示空間至少要1080但是只有985MB,所以自己返回又直接的將數據文件的存儲的位置更改為 用戶的/ 也就是根目錄下,之后可以到了最后的界面
自己解鎖一個普通用戶
自己在帶gonme的centos的終端下操作:
使用netca命令調出listener.ora配置文件的配置界面
[root@localhost admin]# netca Oracle Net Services Configuration: Stopping Oracle Net Listener: Running Listener Control: /data/oracle/product/11.2.0/bin/lsnrctl stop LISTENER Listener Control complete. Listener stopped successfully. Deleted listener: LISTENER Configuring Listener:LISTENER Listener configuration complete. Oracle Net Listener Startup: Running Listener Control: /data/oracle/product/11.2.0/bin/lsnrctl start LISTENER Listener Control complete. Listener started successfully. Oracle Net Services configuration successful. The exit code is 0
調出的界面:
之后先把已經存在的listener監聽delete了,
已經存在的listener.ora中的內容為
[root@localhost admin]# more listener.ora # listener.ora Network Configuration File: /data/oracle/product/11.2.0/network/admin/li stener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /data/oracle
用下面的netca調出的界面更改之后 的內容為:
netca調出的界面:這個是針對listener.ora文件進行配置更改,刪除,增加的一個管理界面
[root@localhost admin]# more listener.ora # listener.ora Network Configuration File: /data/oracle/product/11.2.0/network/admin/li stener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.27.102)(PORT = 1521)) ) ADR_BASE_LISTENER = /data/oracle
當用這個管理界面配置完畢之后,不用lsnrctl stop、lsnrctl start去重新的啟動監聽,因為會自動的重啟,見上面的netca調出的界面保存之后顯示
[root@localhost admin]# netca
Oracle Net Services Configuration:
Stopping Oracle Net Listener:
Running Listener Control:
/data/oracle/product/11.2.0/bin/lsnrctl stop LISTENER
Listener Control complete.
Listener stopped successfully.
Deleted listener: LISTENER
Configuring Listener:LISTENER
Listener configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/data/oracle/product/11.2.0/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Oracle Net Services configuration successful. The exit code is 0
之后直接在centos的終端下可以成功的連接到orcl這個數據庫實例了
成功的結果如下:這個相當於在本地的客戶端上去連接指定的orcl數據庫
之后在window10遠程客戶端連接centos上的orcl數據庫
具體的tnsnames.ora文件
xnjCentos1= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.27.102)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
遠程登錄成功
下面的轉自:https://www.cnblogs.com/mmzs/p/9033112.html
作者 :淼淼之森
純的命令行的centos 7 安裝Oracle11g的過程
、0、下載Orcle11G
說明一下: [root@myYUn install]#中的myYUn 等價於 [root@iz2f570bi1k56uz install]#中的iz2f570bi1k56uz; 這是為了界面效果調整的,但是有些沒調整到,理解一哈。
1、上傳文件到服務器或虛擬機的/install目錄下
[root@myYUn install]# rz –y
如果rz –y命令不能使用,可用如下方法解決:
yum install lrzsz -y
2、解壓文件到當前目錄:
[root@myYUn install]# unzip linux.x64_11gR2_database_1of2.zip
[root@myYUn install]# unzip linux.x64_11gR2_database_2of2.zip
如果unzip命令不能使用,依次執行如下命令:
yum list | grep zip/unzip yum install zip yum install unzip
將解壓后的文件夾直接移動到/software目錄下:
[root@myYUn install]# mv database/ /software/
[root@myYUn install]# cd /software
[root@myYUn install]# ll
3、關閉selinux
[root@myYUn software]# vim /etc/selinux/config
設置SELINUX=disabled
[root@myYUn software]# setenforce 0
4、關閉防火牆
[root@myYUn software]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@myYUn software]# getconf LONG_BIT
64
如果是6及以下:
[root@myYUn software]# service iptables stop
[root@myYUn software]# service iptables status
[root@myYUn software]# chkconfig iptables off
如果是centenOS7:
[root@myYUn software]# systemctl restart firewalld.service
[root@myYUn software]# systemctl list-unit-files|grep firewalld.service
firewalld.service disabled
[root@myYUn software]# systemctl disable firewalld.service
5、安裝Oracle 11g依賴包
[root@myYUn software]# yum install gcc make binutils gcc-c++ compat-libstdc++-33elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-develnumactl-devel sysstat unixODBC unixODBC-devel pcre-devel –y
6、添加安裝用戶和用戶組
[root@myYUn software]# groupadd oinstall
[root@myYUn software]# groupadd dba
[root@myYUn software]# useradd -g oinstall -G dba oracle
[root@myYUn software]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@myYUn software]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
7、修改內核參數配置文件
[root@myYUn software]# vim /etc/sysctl.conf
在末尾添加以下內容:
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 1073741824 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
查看是否成功寫進/etc/sysctl.conf文件中:
[root@myYUn software]# sysctl -p
其中kernel.shmmax = 1073741824為本機物理內存(2G)的一半,單位為byte。
8、修改用戶的限制文件
修改/etc/security/limits.conf文件:
[root@myYUn software]# vim /etc/security/limits.conf
在末尾添加以下內容:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
修改/etc/pam.d/login文件:
[root@myYUn software]# vim /etc/pam.d/login
在末尾添加以下內容:
session required /lib64/security/pam_limits.so session required pam_limits.so
修改/etc/profile文件:
[root@ myYUn software]# vim /etc/profile
在末尾添加以下內容:
#oracle配置 if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
9、創建安裝目錄和設置文件權限
[root@myYUn software]# mkdir -p /data/oracle/product/11.2.0
[root@myYUn software]# mkdir /data/oracle/oradata
[root@myYUn software]# mkdir /data/oracle/inventory
[root@myYUn software]# mkdir /data/oracle/fast_recovery_area
[root@myYUn software]# chown -R oracle:oinstall /data/oracle
[root@myYUn software]# chmod -R 775 /data/oracle
10、設置oracle用戶環境變量
首先切換到oracle用戶下:
[root@myYUn software]# su -l oracle
[oracle@myYUn ~]$ vim .bash_profile
在末尾添加如下內容:
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
注意,標紅處必須與創建的數據庫實例名稱一致,否則數據庫啟動后無法訪問。第一次配置完記得source一下。
[oracle@myYUn ~]$ source .bash_profile
11、編輯靜默安裝響應文件
復制安裝文件夾response到當前oracle用戶的家目錄下:
[oracle@myYUn ~]$ cp -R /software/database/response/ .
[oracle@myYUn ~]$ cd response/
[oracle@myYUn response]$ vim db_install.rsp
需要設置的選項如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=CentOS
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
12、根據響應文件靜默安裝Oracle11g
[oracle@myYUn response]$ cd /software/database/
[oracle@myYUn database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
如果執行以上命令出錯,會提示有參數格式,按照提示參數格式修改修改即可,一般是由於word中的字體、符號格式復制到客戶端命令行后不一致引起,修改即可。
樓主遇到了交換空間不足的問題:
解決方案如下(在root用戶下執行):
[root@myYUn /]# free
[root@myYUn /]# dd if=/dev/zero of=swapfile bs=1024 count=500000
500000+0 records in
500000+0 records out
512000000 bytes (512 MB) copied, 1.67013 s, 307 MB/s
[root@myYUn /]# mkswap swapfile
Setting up swapspace version 1, size = 499996 KiB
no label, UUID=c5e355eb-e73e-4aa0-b882-cb6d1f88e6bc
[root@myYUn /]# swapon swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
[root@myYUn /]# free
開始Oracle在后台靜默安裝。安裝過程中,如果提示[WARNING]不必理會,此時安裝程序仍在后台進行,如果出現Successfully Setup Software,則安裝程序已經停止了。
可以在以下位置找到本次安裝會話的日志:/data/oracle/inventory/logs/installActions2018-05-13_02-14-55PM.log
可以切換終端執行top命令查看后台進程一直是在安裝的,/data目錄也在不斷增大,
當出現以下提示時,代表安裝成功:
按照要求執行腳本。
打開終端,退出到root身份登錄,執行腳本:
[oracle@iZ2f570bi1k56uZ database]$ exit
logout
[root@iZ2f570bi1k56uZ software]# sh /data/oracle/inventory/orainstRoot.sh
Changing permissions of /data/oracle/inventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /data/oracle/inventory to oinstall.
The execution of the script is complete.
[root@iZ2f570bi1k56uZ software]# sh /data/oracle/product/11.2.0/root.sh
Check /data/oracle/product/11.2.0/install/root_iZ2f570bi1k56uZ_2018-05-13_14-25-04.log for the output of root script