准备工作
x86 + centos7 + oracle11G
环境搭建
配置好虚拟机,网络通畅,建议最少3G内存。
安装依赖
yum install binutils compat-libstdc++-33 glibc* ksh gcc gcc-c++ libgcc libstdc++* libaio libaio-devel libXext libX11 libXau libxcb libXi make sysstat unixODBC unixODBC-devel zlib-devel elfutils-libelf-devel -y
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp
2个install都安装
设置主机名
[root@oracle]# vi /etc/sysconfig/network
HOSTNAME=server.example.com
[root@server]# hostname server.example.com
打开 /etc/hosts 文件并为服务器添加一个完全限定的主机名。
[root@server]# vi /etc/hosts
192.168.1.58 server.example.com
重新启动网络
service network restart
#测试连接
ping -c 3 server.example.com
创建用户
useradd oracle
#修改密码
passwd oracle
mkdir /oracle/app/product/11.2.0/db_1 -p
chmod -R 775 /oracle
chown -R oracle:oracle /oracle
编辑配置文件
通过编辑 /etc/selinux/config 文件来禁用安全 linux,确保将 SELINUX 标志设置为 permissive。支持宽松策略的目的是允许系统在启用 SELinux 的情况下运行,同时仍允许应用程序尝试执行的所有访问。
vi /etc/selinux/config
SELINUX=permissive
关闭/禁用防火墙
systemctl stop firewalld
systemctl disable firewalld
在 /etc/sysctl.conf 中添加或修改内核参数,以更改共享内存、信号量、最大文件描述符数等的设置。
kernel.shmmni = 4096
kernel.shmmax = 4398046511104
kernel.shmall = 1073741824
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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 = 1048586
/sbin/sysctl -p
在 /etc/security/limits.conf
中设置硬壳和软壳资源限制,例如锁定的内存地址空间、打开的文件数、进程数和核心文件大小。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft stack 10240
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000
oracle的环境变量
[oracle@server ~]# vi .bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=server.example.com; export ORACLE_HOSTNAME
ORACLE_UNQNAME=server; export ORACLE_UNQNAME
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/app/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=server; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
[oracle@server ~]# source .bash_profile
下载、安装
切换到用户 oracle 并下载 Oracle。下载地址 Database Software Downloads | Oracle
解压缩文件
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
#多了一个database文件夹
运行程序,一定是可视化界面、并且是首次登录是oracle用户下
cd /database
./runInstaller
操作界面
1、配置更新
电子邮件和接受更新,这里可以不填,直接“next”,点“yes”
2、安装选项
选第1个,创建和配置数据库。
3、 系统类
选择“desktop class”桌面类选项。
4、安装配置
都不用改,输入密码即可
5、创建库存
使用 /oracle/oraInventory
6、检查
OS Kernel parameter : semmni Failed Yes,不用管
点右上角,“ignore All”忽略全部
7、概述
可以忽略,11.2.0.4可以解决,我用的0.1
8、执行脚本
Q&A
ins_ctx.mk 报错 undefined reference to memcpy@GLIBC_2.14
首先查看/usr/lib64/libc.a文件是否存在,如不存在可yum install glibc-static
下载。然后修改出错的makefile文件($ORACLE_HOME/ctx/lib/ins_ctx.mk
),在$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
前面添加-static /usr/lib64/libc.a
,即采用静态链接,可解决此错误,点击retry通过。
/oracle/app/product/11.2.0/db_1/ctx/lib/ins_ctx.mk
ins_emagent.mk 报错 Error in invoking target ‘agent nmhs’
修改出错的makefile文件,在$(MK_EMAGENT_NMECTL)
之后加上-lnnz11
链接libnnz11.so库,点击retry即可通过。
/oracle/app/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
9、监听
vi /oracle/app/product/11.2.0/db_1/network/admin/listener.ora
#监听的协议的机器LISTENER,地址和端口,可以多个地址、端口
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = server.example.com)(PORT = 1521))
)
)
#
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/app/product/11.2.0/db_1)
(SID_NAME = orcl)
)
)
tnsnames.ora是记录客户端访问数据库的本地配置:
客户端是通过tnsnames.ora来识别连接服务器的
如果你没有添加tnsnames.ora,那么你就连接不上服务器
vi tnsnames.ora
#ORCL是客户端工具连接的数据库名称
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = server.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.example.com)
)
)
数据库命令
1、监听启动/停止
#启动
lsnrctl start
#停止
lsnrctl stop
2、数据库实例启动/停止
#进入sqlplus环境,不登录数据库,不填写/nolog需要输入用户密码
sqlplus /nolog
#以sysdba连接数据库
connect /as sysdba
#开启数据库实例 (sqlplus)
SQL> startup
ORACLE instance started.
Total System Global Area 1536602112 bytes
...
Database opened.
#关闭数据库实例
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
用户命令
--修改密码
alter user SYSDBA identified by Oracle1521
--创建用户
create user TEST1 identified by TEST1;
--用户授权
grant connect,resource,dba to TEST1;
--查看用户表
select username from dba_users;
空间类型
#点类型
select sde.st_astext(sde.st_point(103.806709, 30.660408,4326)) from dual
#字段类型
SELECT SDE.st_astext(t.SHAPE) FROM system.lines t
oracle客户端
Instant Client for Microsoft Windows (x64) 64-bit
Instant Client for Windows 32-bit
看需要吧,如果安装的是64位的应用,就使用64的,比如ArcMap Desktop就是32的,就需要32的。
可安装可不安装
wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm --nodeps --force
参考 :
CentOS 7.2 远程安装 Oracle 11g | zz_zigzag Notes
在 Oracle Linux 11 上加载 Oracle 2g R7 问题 - Oracle 论坛
Installing Oracle 11g Release 2 In Centos 7 (supportsages.com)
【精选】Linux CentOS 7安装Oracle11g超完美教程_centos安装oracle11g_蜗牛er的博客-CSDN博客