• Linux安装Oracle和postgrepSQL数据库


    一、安装Oracle

    环境配置

    1、安装Oracle所需要的依赖包,依赖包有:

    1. binutils-2.17.50.0.6-2.el5
    2. compat-libstdc++-33-3.2.3-61
    3. elfutils-libelf-0.125-3.el5
    4. elfutils-libelf-devel-0.125
    5. glibc-2.5-12
    6. glibc-common-2.5-12
    7. glibc-devel-2.5-12
    8. glibc-headers-2.5-12
    9. gcc-4.1.1-52
    10. gcc-c++-4.1.1-52
    11. libaio-0.3.106
    12. libaio-devel-0.3.106
    13. libgcc-4.1.1-52
    14. libstdc++-4.1.1
    15. libstdc++-devel-4.1.1-52.e15
    16. make-3.81-1.1
    17. numactl-devel-0.9.8.i386
    18. sysstat-7.0.0
    19. fonts-chinese-3.02-9.6.el5.noarch.rpm
    20. unixODBC-2.2.11
    21. unixODBC-devel-2.2.11
    [root@localhost ~]# rpm -qa|grep  binutils compat gcc glibc libaio libgcc  libstdc make sysstat unixODBC

    注意:在安装elfutils-libelf-devel-0.125-3.el5.i386.rpm 需要elfutils-libelf-devel-0.125-3.el5.i386.rpm elfutils-libelf-devel-static-0.125-3.el5.i386.rpm 两个包同时装,两个包相互依赖,建议在图形化安装Oracle时认真查看安装所需要的依赖包,如果没装的,装完再安装:

    1. # rpm -ivh elfutils-libelf-devel-0.125-3.el5.i386.rpm elfutils-libelf-devel-static-0.125-3.el5.i386.rpm
    2. binutils-2.17.50.0.6-2.el5
    3. compat-libstdc++-33-3.2.3-61
    4. elfutils-libelf-0.125-3.el5
    5. elfutils-libelf-devel-0.125
    6. gcc-4.1.1-52
    7. gcc-c++-4.1.1-52
    8. glibc-2.5-12
    9. glibc-common-2.5-12
    10. glibc-devel-2.5-12
    11. glibc-headers-2.5-12
    12. libaio-0.3.106
    13. libgcc-4.1.1-52
    14. libstdc++-4.1.1
    15. libstdc++-devel-4.1.1-52.e15
    16. make-3.81-1.1
    17. //以下的包需要安装
    18. libaio-devel-0.3.106
    19. sysstat-7.0.0
    20. unixODBC-2.2.11
    21. unixODBC-devel-2.2.11

    2、内核参数调整

    1. grep MemTotal /proc/meminfo
    2. grep SwapTotal /proc/meminfo

    Oracle 11g 软件还需要 2.5GB的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB的可用空间。要检查系统上的可用磁盘空间,运行以下命令:

    df -h

    微调参数内核,如果省略此步骤,oracle在系统检测时会提示错误。

    注意:

    从 /proc/sys/fs/file-max中得到最大值:113825

    则 fs.file-max = 512*processes得到fs.file-max = 512*113825=58278400

    1. [root@localhost ~]#cat >>/etc/sysctl.conf <<EOF
    2. fs.file-max = 58278400
    3. kernel.shmmni = 4096
    4. kernel.sem = 250 32000 100 128
    5. net.ipv4.ip_local_port_range = 900065500
    6. net.core.rmem_default=4194304
    7. net.core.rmem_max=4194304
    8. net.core.wmem_default=262144
    9. net.core.wmem_max=262144
    10. EOF

    设置/etc/sysctl.conf配置文件使参数生效:

    sysctl -p

    3、修改系统资源使用限额

    为了提高在linux系统上运行软件的性能,必须对oracle用户设置下列shell 限定。

    1. vi /etc/security/limits.conf
    2. oracle soft nproc 2047
    3. oracle hard nproc 16384
    4. oracle soft nofile 1024
    5. oracle hard nofile 65536

    修改/etc/pam.d/login,在文件末尾加入以下内容,使其它系统资源限额设置生效。

    配置登录是加载限制文档:

    1. [root@localhost ~]#cat>>/etc/pam.d/login<
    2. session required/lib/security/pam_limits.so
    3. session required pam_limits.so
    4. EOF

    4、关闭内核selinux选项

    1. vi /etc/selinux/config
    2. SELINUX=disabled

    5、设置网卡静态IP地址

    修改/etc/sysconfig/network-scripts/ifcfg-eth0,将网卡地址设置为静态IP地址。进入RAC安装时,此步骤一定不能省略BOOTPROTO=static必须在ifcfg-eth0配置文件中始终存在,否则Oracle将提示网络检查报告。

    1. vi /etc/sysconfig/network-scripts/ifcfg-eth0
    2. DEVICE=eth0
    3. ONBOOT=yes
    4. BOOTPROTO=static
    5. HWADDR=00:0c:29:ce:d7:3e
    6. NETMASK=255.255.255.0
    7. IPADDR=192.168.200.4
    8. TYPE=Ethernet
    9. USERCTL=yes
    10. IPV6INIT=no
    11. PEERDNS=yes

    完成上述后,重启服务器。

    oracle安装前的准备工作

    1、创建Oracle用户及用户组,和Oracle安装目录及数据目录,并设置权限

    1. [root@localhost ~]#groupaddoinstall
    2. [root@localhost ~]#groupadddba
    3. [root@localhost ~]#mkdir/opt/u01
    4. [root@localhost ~]#mkdir/opt/oraInventory
    5. [root@localhost ~]#useradd -goinstall -G dba -d /opt/u01/oracle oracle
    6. [root@localhost ~]#passwdoracle
    7. [root@localhost ~]#chmod -R 775/opt/u01/oracle

    2、修改RedHat发行版本,将RHEL 5.改为redhat-4,如果11g就不用了,10g默认只支持redhat-4

    1. vi /etc/redhat-release
    2. Red Hat Enterprise Linux Server release 5 (Tikanga)

    3、设置Oracle用户登录环境变量

    根据oracle 用户的默认shell,对默认 shellstart-up文件作如下改变。

    如果是Bourne, Bash, or Kornshell,修改环境变量/etc/profile文件如下:

    1. [root@localhost ~]# vi /etc/profile
    2. if [ $USER = "oracle" ]; then
    3. if [ $SHELL = "/bin/ksh" ];then
    4. ulimit -p 16384
    5. ulimit -n 65536
    6. else
    7. ulimit -u 16384 -n 65536
    8. fi
    9. fi

    修改/home/oracle/.bash_profile配置文件,在文件末尾加上以下内容:

    1. ORACLE_BASE=/opt/u01
    2. ORACLE_HOME=$ORACLE_BASE/oracle
    3. ORACLE_SID=dbsvr
    4. PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
    5. export ORACLE_BASE ORACLE_HOMEORACLE_SID PATH
    6. #LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
    7. #export LC_CTYPE=en_US.UTF-8
    8. #export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

    然后执行:

    $ source .bash_profile

    使环境变量生效。

    Oracle安装

    1、解压文件

    1. [oracle@localhost tmp]$ unzip linux_11gR1_database_1013.zip
    2. [oracle@localhost tmp]$ cd database/
    3. [oracle@localhost database]$ ls
    4. README doc install runInstaller stage welcome.html
    5. [root@localhost data]chown -Roracle:oinstall database
    6. [root@localhost opt]chown -Roracle:oinstall u01
    7. [root@localhost opt]chown -Roracle:oinstall oraInventory

    2、开始安装

    以oracle用户进入,必须在图形界面下安装,如果启动级别是3则$startx启动图形界面  分辨率必须是1024*768以上:

    1. $ xhost +
    2. $ su - oracle
    3. [oracle@localhost database]$ ./runInstaller

    注意:$ xhost +这个一定要执行,否则会报Can't connect to X11 window
    server,启动不了图形化界面。

    去掉复选框选择,点击next,会弹出对话框如下:

    点击yes:

    选择第2项 install database soft onliy,点击next:

    选择第1项 single instance database installation,点击next:

    选择语言 simplifed Chinese,点击next:

    选择数据库类型,我们选择企业版 Enterprise Edition(3.95G),点击next: 

    为了配置oracle的安装目录,配置值应该如图所示,直接点击next:

    为了配置oracle的管理组,配置值应该如图所示,直接点击nex:

    为了配置oracle的用户权限,配置值应该如图所示,直接点击next: 

    自动安装: 

    安装完成后,点级再次检查"Check Again":

    点击ignore,点击Finash开始安装: 

    安装完成后弹出下图:

     

    3、安装监听

    执行命令:

    # netca

    进入图形化配置:

    直接默认下一步,到最后完成,其中你也可以修改监听去的名称,协议,端口。

    确定监听程序名:

    确定监听程序的协议:

    确定监听程序使用端口:

    是否配置另外一个监听程序:

    监听程序配置完成: 

    监听程序配置-欢迎界面,点击完成。

    4、创建Oracle数据库

    执行命令:

    # dbca

    欢迎使用数据库配置程序:

    选择创建数据库,点击【下一步】:

    选择定制数据库,点击【下一步】 :

    输入数据库名称,点击【下一步】 :

    配置Enterprise Manager,点击【下一步】 :

    设置管理口令,点击【下一步】: 

    选择数据库的存储机制,点击【下一步】 :

    指定要创建的数据库文件的位置,点击【下一步】 :

    不指定数据库的恢复选项,点击【下一步】 :

    只保留Enterprise Manager组件,点击【下一步】: 

    点击标准数据库组件,去除所有选项,点击确定,再点击【下一步】 :

    设置数据库初始化参数,选择默认内存设置:

    设置数据库初始化参数,选择默认块大小及进程设置: 

    设置数据库初始化参数,选择中文相关语言及字符集:

    设置数据库初始化参数,选择数据库连接模式:

    选择数据库Oracle默认安全设置,点击【下一步】:

    选择数据库Oracle启用自动维护任务,点击【下一步】 :

    选择数据库Oracle数据库存储默认设置,点击【下一步】 :

    选择【创建数据库】,点击【完成】 :

    确定定制数据库常用选项,点击【确定】: 

    开始创建及配置数据库实例(大约需要10-20分钟) 

    创建及配置数据库实例(进行中):

    创建及配置数据库实例(完成) :

    创建及配置数据库实例(完成),确认【口令管理】后,点击【退出】 

    创建及配置数据库实例(完成),确认【口令管理】,点击确定:

    5、启动、停止及开机自动启动Oracle数据库 

    1. vi /home/oracle/.bash_profile
    2. export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
    3. export ORACLE_SID=XE
    4. export ORACLE_BASE=/u01/app/oracle
    5. export PATH=$ORACLE_HOME/bin:$PATH
    6. LSNR=$ORACLE_HOME/bin/lsnrctl
    7. SQLPLUS=$ORACLE_HOME/bin/sqlplus
    8. ORACLE_OWNER=oracle
    9. export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

    启动或关闭数据库(oracle用户)

    su – oracle

    第一种启动方式:

    1. sqlplus /nolog
    2. sql>connect system/passwd as sysdba
    3. sql> startup
    4. Or
    5. sql> shutdown immediate

    第二种启动方式:

    1. cd /u01/app/oracle/product/11.1.0/db_1/bin
    2. ./lsnrctl start
    3. Or
    4. ./lsnrctl stop

    6、创建及修改自动启动或关闭数据库相关文件

    1. vi /etc/oratab
    2. xe:/u01/app/oracle/product/11.1.0/db_1:Y
    1. vi /etc/init.d/oracle-xe
    2. #!/bin/sh
    3. # chkconfig: 345 90 10
    4. # description: Oracle auto start-stop script
    5. #
    6. ORA_HOME=/u01/app/oracle/product/11.1.0/db_1
    7. ORA_OWNER=oracle
    8. if [ ! -f $ORA_HOME/bin/dbstart ]
    9. then
    10. echo "Oracle startup: cannot start"
    11. exit
    12. fi
    13. case "$1" in
    14. 'start')
    15. su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
    16. ;;
    17. 'stop')
    18. su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
    19. ;;
    20. esac
    chmod 755 /etc/init.d/oracle-xe

    安装oracle数据库11g时报错:提示ins_ctx.mk编译错误

    centos7安装oracle 11g时碰到这个报错,看了很多博客,各种方法都试了,包括下面这种,都没什么用。

    后来发现我的路径跟博主的不一样,怪不得不能用,然后更改路径后,按照提示修改下面两个文件就OK了。

    提示ins_ctx.mk编译错误,解决方法:

    ORACLE_HOME:/u01/app/oracle/product/11.2.0/dbhome_1
    该软件包包含一个静态链接库:/usr/lib64/libc.a
    在oracle用户下修改/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk,将

    修改/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk,

    将 ctxhx: $(CTXHXOBJ) $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

    修改为: ctxhx: $(CTXHXOBJ) -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a (11行)

    添加完成后点击继续会继续报错:

    1. ”Error in invoking target ‘agent nmhs’ of makefile
    2. ‘/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk.’

    解决方法:在makefile中添加链接libnnz11库的参数
    修改/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk,将
    (MKEMAGENTNMECTL)修改为:(MKEMAGENTNMECTL) 修改为:(MK_EMAGENT_NMECTL) -lnnz11(190行)
    点击Retry继续安装。

    最后安装成功!

    oracle提示框展开不全 

    ./runInstaller -jreLoc /usr/java/jdk1.8.0_91/

    二、安装postgrepSQL

    1、下载postgrep安装包

    PostgreSQL: File Browser

    2、解压安装包

    [root@VM-0-3-centos local]# tar -zxvf postgresql-12.4.tar.gz

    3、编译安装

    新建安装目录,在/usr/local 下新建pgsql(目录名字自己取,比如postgresql):

    [root@VM-0-3-centos local]#mkdir pgsql

    5.进入解压目录,进行编译文件到安装目录pgsql

    [root@VM-0-3-centos postgresql-12.4]# ./configure --prefix=/usr/local/pgsql

    4、安装readline-devel

    运行步骤5的时候会出现如下图的情况,这时候需要安装,安装命令如下:

    [root@VM-0-3-centos postgresql-12.4]#yum install readline-devel

    5、 安装zlib开发包

    继续执行步骤5的命令,如果出现如下图的情况,需要安装zlib开发包,安装命令如下:

    [root@VM-0-3-centos postgresql-12.4]#yum install zlib-devel

    6、继续执行步骤5的命令

    继续执行步骤5的命令,直到不报错。

    可以看到提示创建了config.status配置文件。

    7、继续安装

    分别执行下面语句:

    [root@VM-0-3-centos postgresql-12.4]#make && make install

    8、添加用户和组

    1. [root@VM-0-3-centos postgresql-12.4]#groupadd postgres
    2. [root@VM-0-3-centos postgresql-12.4]#useradd -g postgres postgres

    接下来需要设置权限,将postgres的数据目录全部赋权给postgres用户(此处我将postgres的数据目录指定在在/usr/local/pgsql/data目录下):

    chown -R postgres:postgres /usr/local/pgsql/

    9、创建postgresql数据库的数据主目录并修改文件所有者

    这个数据库主目录是随实际情况而不同,这里我们的主目录是在/pgsql/data目录下:

    1. [root@VM-0-3-centos local]# cd pgsql
    2. [root@VM-0-3-centos pgsql]# mkdir data
    3. [root@VM-0-3-centos pgsql]#chown postgres:postgres data
    4. [root@VM-0-3-centos pgsql]#ls -al

    10、配置环境变量

    进入home/postgres目录可以看到.bash_profile文件

    1. [root@VM-0-3-centos pgsql]# cd /home/postgres
    2. [root@VM-0-3-centos postgres]# ls -al

    编辑修改.bash_profile文件。

    [root@VM-0-3-centos postgres]# vi .bash_profile

    添加以下内容:

    1. export PGHOME=/usr/local/pgsql
    2. export PGDATA=/usr/local/pgsql/data
    3. PATH=$PATH:$HOME/bin:$PGHOME/bin

    保存,退出vi。执行以下命令,使环境变量生效:

    [root@VM-0-3-centos postgres]## source .bash_profile 

    11、切换用户到postgres并使用initdb初使用化数据库

    1. [root@VM-0-3-centos postgres]# su - postgres
    2. [postgres@VM-0-3-centos ~]$ initdb

    初始化成功结果如下图:

    可以看到 /pgsql/data已经有文件了。

     

    12、修改/pgsql/postgresql/data目录下的两个文件。

    postgresql.conf   配置PostgreSQL数据库服务器的相应的参数。  

    pg_hba.conf        配置对数据库的访问权限。

    在当前用户下访问data目录:

    1. [postgres@VM-0-3-centos ~]$ cd /usr/local/pgsql/data
    2. [postgres@VM-0-3-centos data]$ ls
    3. [postgres@VM-0-3-centos data]$ vi postgresql.conf

    【其中,参数“listen_addresses”表示监听的IP地址,默认是在localhost处监听,也就是127.0.0.1的ip地址上监听,只接受来自本机localhost的连接请求,这会让远程的主机无法登陆这台数据库,如果想从其他的机器上登陆这台数据库,需要把监听地址改为实际网络的地址,一种简单的方法是,将行开头的#去掉,把这个地址改为*,表示在本地的所有地址上监听。】

    [postgres@VM-0-3-centos data]$ vi pg_hba.conf 

    找到最下面这一行 ,这样局域网的人才能访问。红色为新添加内容。

    1. # IPv4 local connections:
    2. host    all             all             0.0.0.0/0                  trust
    3. host    all             all             127.0.0.1/32            trust

     

    13、开放端口

    切换到root用户下:

    1. [root@VM-0-3-centos ~]# firewall-cmd --zone=public --add-port=5432/tcp --permanent
    2. [root@VM-0-3-centos ~]# firewall-cmd --reload
    3. [root@VM-0-3-centos ~]# service firewall start(开启防火墙)

    14、启动数据库

    由于我们设置了环境变量,所以已经指定了数据目录PGDATA,-l表示日志文件目录,通常需要指定,所以我们在/usr/local/pgsql根目录下再创建一个log目录用来存放日志文件(注意别忘记赋予可写的权限最好是777权限), 手动新建即可。

    最后运行pg_ctl start -l /usr/local/pgsql/log/pg_server.log即可启动数据库,看到如下提示就说明启动成功了:

    1. [root@VM-0-3-centos ~]# su - postgres
    2. [postgres@VM-0-3-centos ~]$ pg_ctl start -l /usr/local/pgsql/log/pg_server.log

    15、登录重置密码

    启动成功后我们就可以通过postgresql自带的客户端工具psql来进行连接,直接输入psql看到版本信息则说明连接成功:

    [postgres@VM-0-3-centos ~]$ psql

    接下来要做的第一件事就是设置postgres用户的密码(默认为空),用psql连接成功后直接输入\password即会提示输入两次密码,如下图:

    16、设置开机启动

    PostgreSQL的开机自启动脚本位于PostgreSQL源码目录(解压的那个文件夹)的contrib/start-scripts路径下。

    linux文件即为linux系统上的启动脚本

    1. 修改linux文件属性,添加X属性

    1. [root@VM-0-3-centos /]# cd /usr/local/postgresql-12.4/contrib/start-scripts/
    2. [root@VM-0-3-centos contrib]# cd start-scripts/
    3. [root@VM-0-3-centos start-scripts]# chmod a+x linux

    2. 复制linux文件到/etc/init.d目录下,更名为postgresql

    [root@VM-0-3-centos start-scripts]# cp linux /etc/init.d/postgresql

    3. 修改/etc/init.d/postgresql文件的两个变量

    1. [root@VM-0-3-centos /]# cd /etc/init.d/
    2. [root@VM-0-3-centos init.d]# vi postgresql

    prefix设置为postgresql的安装路径:

    usr/local/pgsql/

    PGDATA设置为postgresql的数据目录路径:

    usr/local/pgsql/data

     

    4. 设置postgresql服务开机自启动

    [root@VM-0-3-centos init.d]# chkconfig --add postgresql

    5. 查看开机自启动服务设置成功。

    1. [root@localhost init.d]# chkconfig
    2. postgresql         0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

    6. 执行service postgresql start,启动PostgreSQL服务。

    1. [root@VM-0-3-centos init.d]# service postgresql start
    2. Starting PostgreSQL: ok
    3.  

    导入数据

    向tbl_site_view 表中导入500个数据的命令,windows的路径需要用两个斜杠,C://:

    1. psql -U postgres -d webdb
    2. set search_path to public;
    3. SELECT setval('tbl_site_view_id_seq', (SELECT MAX(id) FROM tbl_site_view)+1)
    4. webdb-# \copy tbl_site_view from '/home/a.csv' with csv header delimiter ',' encoding 'UTF8';
  • 相关阅读:
    数据挖掘十大算法
    【TES720D】基于复旦微的FMQL20S400全国产化ARM核心模块
    如何在复现LaneNet车道线检测项目时,采用网上博主制作数据集的方法来只做自己的数据集,当把此数据集投喂进网络训练时(采用Pytorch库)会报如下的错误?
    二、ElasticSearch中索引库与文档操作
    Qt-OpenCV学习笔记--人脸识别--基于Haar特征的cascade分类器
    机器学习——聚类算法
    【密码学】RSA的攻与防_4.0
    Simplify Calculations with Formulas
    力扣100题-07-三数之和
    YOLOv5、YOLOv8改进:Swin Transformer-V2
  • 原文地址:https://blog.csdn.net/qq_35029061/article/details/126251805