Life

Friday, January 18, 2019

oracle字符集问题

在向oracle数据库中插入中文字符串是出现错误:
ERROR:ORA-01756: quoted string not properly terminated

是因为无法识别语句中的中文字符,插入的是乱码,无法成功。
再比如:
仍然是乱码显示
我们查询出数据库服务端的编码为AMERICAN_AMERICA.AL32UTF8
应该正常显示中文,那么就可能是客户端的问题
编辑linux用户的环境变量文件.bash_profile    
添加NLS_LANG oracle客服端字符环境变量,将该变量和数据库设置成一致。
激活使之生效

在此插入、查询
中文字符正常显示。
如果还是无法正常显示
请查看你的连接终端的字符集设置,将其设置为utf-8再重试。

版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者Leslie Tien和本文原始地址:
https://leslietien.blogspot.com/2019/01/oracle_18.html

Thursday, January 17, 2019

oracle安装过程中遇到的问题及解决

在之前的文章Linux上安装oracle奋斗历程中我说到在安装oracle时会遇到一些问题,在这里我将我遇到的问题及解决方法与大家分享,希望能有所帮助。

1.安装oracle需要图形界面

在oracle安装过程中是以图形界面显示的,而我们选择在Linux服务器上安装oracle,上哪去找图形界面呢?
在这里我给大家分享我使用的工具:MobaXterm。可以下载绿色免安装版。MobaXterm内建了一个X server,可以直接执行远程端的X窗口程序。也是随着SSH连接自动发挥作用,无需任何配置。利用该工具使用oracle账户登录服务器再执行安装脚本就会有图形界面啦。

2.连接时报错:DISPLAY not set. Please set the DISPLAY and try again。

在使用MobaXterm去连接服务器时还有可能报错:DISPLAY not set. Please set the DISPLAY and try again。
具体原理我不是很清楚,感兴趣的可以深究,我只讲如何解决。
切换到root用户,执行以下命令:
# export DISPLAY=:0.0
# xhost +
如果有提示:
access control disabled, clients can connect from any host
则该问题解决,若提示

xhost: unable to open display “”

则请看下一问题

3.xhost: unable to open display “”

第一步:用root登陆linux,启动vnc服务;
第二步:根据vnc起来的端口,设置export DISPLAY=localhost:1;
第三步:执行xhost +
最好在mobaXterm上再开一个终端执行该命令,我当初在xshell上执行这些命令一直失败,换到MobaXterm上一下就ok了。
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者Leslie Tien和本文原始地址:
https://leslietien.blogspot.com/2019/01/oracle.html

Monday, January 14, 2019

Linux上安装oracle奋斗历程

写在前面

    先说明oracle的版本:
Oracle Database 11g Release 2
安装的环境,使用阿里云为学生提供优惠的轻量应用服务器,每月低至9.5元。配置如下:

进入正题

1.创建oracle用户及用户组

以root用户连接linux服务器
#创建用户组 oinstalldba
创建用户oracle并设置其属于用户组oinstall,属于附加组dba
命令如下:
#groupadd oinstall
#groupadd dba
#useradd -g oinstall -G dba oracle
这一步主要是为了避免后面创建文件以及解压缩等一系列步骤中,要将文件所有者修改为oracle才能在安装过程中有足够的权限创建文件或子目录。

2.软件包依赖

官方文档中对于RHEL5及以上版本的Linux发行版,要求需要以下的软件包(更高版本也行)

shell
binutils-2.17.50.0.6 
compat-libstdc++-33-3.2.3 
elfutils-libelf-0.125 
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125 
gcc-4.1.2 
gcc-c++-4.1.2 
glibc-2.5-24 
glibc-common-2.5 
glibc-devel-2.5 
glibc-headers-2.5 
kernel-headers-2.6.18 
ksh-20060214 
libaio-0.3.106 
libaio-devel-0.3.106 
libgcc-4.1.2 
libgomp-4.1.2 
libstdc++-4.1.2 
libstdc++-devel-4.1.2 
make-3.81 
sysstat-7.0.2 
unixODBC-2.2.11 

你可以使用以下命令查看上面这些软件包的版本是否大于等于上面的要求:

[oracle@izuf6b3rv931tl77hb3mcoz /]$ rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
binutils-2.27-34.base.el7.x86_64
package compat-libstdc++ is not installed
elfutils-libelf-0.172-2.el7.x86_64
elfutils-libelf-devel-0.172-2.el7.x86_64
elfutils-libelf-devel-static-0.172-2.el7.x86_64
gcc-4.8.5-36.el7.x86_64
gcc-c++-4.8.5-36.el7.x86_64
glibc-2.17-260.el7.x86_64
glibc-common-2.17-260.el7.x86_64
glibc-devel-2.17-260.el7.x86_64
glibc-headers-2.17-260.el7.x86_64
kernel-headers-3.10.0-957.1.3.el7.x86_64
ksh-20120801-139.el7.x86_64
libaio-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.x86_64
libgcc-4.8.5-36.el7.x86_64
libgomp-4.8.5-36.el7.x86_64
libstdc++-4.8.5-36.el7.x86_64
libstdc++-devel-4.8.5-36.el7.x86_64
make-3.82-23.el7.x86_64
sysstat-10.1.5-17.el7.x86_64
unixODBC-2.3.1-11.el7.x86_64
unixODBC-devel-2.3.1-11.el7.x86_64
如提示有未安装,那建议你全部更新安装一遍

#yum install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

3.配置内核参数

由于只是安装个Oracle用来学习那只需要使用官方文档中建议的最低配置就行
具体方法是:
编辑/etc/sysctl.conf文件
#vi /etc/sysctl.conf
在文件最后添加一下配置:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048586
为使上述配置生效而不重启系统,执行如下命令:
# /sbin/sysctl –p

4.为oracle用户添加shell配置

为了提高Oracle软件性能,需要为Oracle用户添加shell配置
具体步骤为:
1. /etc/security/limits.conf文件最后,添加以下参数:

#vi /etc/security/limits.conf

oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536
2. /etc/pam.d/login文件中添加一行:

session    required     pam_limits.so
3. /etc/profile文件添加以下脚本:

if [ $USER = "oracle" ]; then
      if [ $SHELL = "/bin/ksh" ]; then
            ulimit -p 16384
            ulimit -n 65536
      else
            ulimit -u 16384 -n 65536
      fi
fi

5.创建并配置环境变量

安装路径可以任选。在任意路径下创建安装目录并赋权限

命令如下

# mkdir /oracle/app
# chown -R oracle:oinstall /oracle
# chmod -R 775 /oracle

6.配置oracle用户环境变量:

此时要切换至Oracle用户:

#su – oracle
编辑shell脚本:

$vi .bash_profile
在脚本中添加如下环境变量:
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/app
export ORACLE_SID=oracleSID
export PATH=$ORACLE_HOME/bin:$PATH

7.安装包下载

复制链接至迅雷下载即可.或移步至oracle官网下载
其他版本可参考另一博文:Oracle11g下载地址--多平台下的32位和64位
下载完后使用任意ftp文件传输工具上传至linux主机,使用unzip命令解压。
解压完成后会生成一个database文件夹:
drwxr-xr-x 8 oracle oinstall       4096 Aug 21  2009 database
-rw-r--r-- 1 root   root     1239269270 Jan 14 10:55 linux.x64_11gR2_database_1of2.zip
-rw-r--r-- 1 root   root     1111416131 Jan 14 10:55 linux.x64_11gR2_database_2of2 (1).zip
进入database解压包,该目录下有可执行脚本 runInstaller

[oracle@izuf6b3rv931tl77hb3mcoz tmp]$ cd database/
[oracle@izuf6b3rv931tl77hb3mcoz database]$ ll
total 36
drwxr-xr-x 12 oracle oinstall 4096 Aug 17  2009 doc
drwxr-xr-x  4 oracle oinstall 4096 Aug 15  2009 install
drwxrwxr-x  2 oracle oinstall 4096 Aug 15  2009 response
drwxr-xr-x  2 oracle oinstall 4096 Aug 15  2009 rpm
-rwxr-xr-x  1 oracle oinstall 3226 Aug 15  2009 runInstaller
drwxrwxr-x  2 oracle oinstall 4096 Aug 15  2009 sshsetup
drwxr-xr-x 14 oracle oinstall 4096 Aug 15  2009 stage
-rw-r--r--  1 oracle oinstall 5402 Aug 18  2009 welcome.html
运行runInstaller脚本开始安装,此处可能会有一些错误、问题。我另外给大家讲解。
还有就是此时要使用oracle用户登陆图形界面,因为之后的安装是在图形界面下完成的。这个也放到以后讲。
如果前面都木有问题了,那么你将看到这个界面,终于来到了安装界面:
1.step 1 是一些更新的问题,把勾去掉跳过即可:
2. step 2 给出三个选项,分别是创建并配置一个新数据库;只安装数据库软件;升级已有数据库。选择第一项安装数据库:
3. step 3是选择配置桌面版还是服务器版,桌面版是最小化配置,这里为了练习选择服务器版的配置:
4.step 4 选择单实例服务器配置还是如果要配置分布式服务配置。自己练习自然选择单实例服务器配置就可以了:
5.step 5 选择典型安装还是高级安装。我们自己配置选择高级安装(注意截图中默认选择典型安装,我们要选第二个,不要被图片误导了):
6.step 6 选择语言,默认已选择英文,我们再加上简体中文:
7.step 7 选择数据库版本,这里选择第一个企业版:
8 step 8 选择安装路径,这个已经在环境变量里配置过在这里就不用改动了:
9.step 9 Inventory Directory目录用于记录Oracle的清单信息,清单信息中包括Oracle的安装路径等信息。我们新建一个 inventory目录存放这些信息:
10. step 10 创建数据库的类型:
    • 通用/事务处理:专为一般用途或交互较多的应用程序而设计。
    • 数据仓库:对数据存储应用程序进行优化。
  • 选一般的通用就可以:
  • 11.step 11 配置数据库名,和Oracle服务ID号,最好不要动,数据库名一定要记住:
  • 12. step 12 配置一下字符集,将字符集设置成UTF-8,其他的不用修改:
  • 13. step 13 配置系统信息邮件通知的,不用在意,跳过:
  • 14. step 14 用于配置数据存储的(数据文件存储位置),这里我们把数据存储在/oracle/oradata目录下,默认不用动:
  • 15. step 15 配置数据备份,这里我们只是用来学习选择不进行自动备份:
  • 16. step 16 配置账号密码,这里我为了图简单好记将所有的默认用户统一使用相同的密码,密码需要包含大、小写字母和数字:
  • 17. step 17 配置数据库用户组的,只要安装前的配置工作完成了,这一步可以直接使用默认的:
18 step 18 检测交换分区大小、内核参数以及依赖包是否安装。只要前面准备工作都完成了,下面的错误可以直接忽略(比如它要求的软件包,我们的版本实际上比它要求的还高,所以这里的报错没必要理会它),我们直接点击右上角忽略即可:
19. step 19 对前面所有配置的一个总结,我们可以直接点击完成:
20.step 20 只要前面工作都没问题,我们就安心的等待安装:
之后需要点击password management对数据库用户的密码进行一些配置:
然后运行脚本:

21.step 21 安装成功!
至此oracle数据库安装完毕。可以尝试使用sqlplus连接oracle数据库验证一下,在此不在赘述。
开启oracle学习的漫漫征途吧~
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者Leslie Tien和本文原始地址:
https://leslietien.blogspot.com/2019/01/linuxoracle.html

Saturday, January 5, 2019

2018音乐之旅

2018音乐旅程由酷狗为我们总结:

emm。。我听歌还是挺多的~小得意~
其实是这个时间段比较闲罢了......

 最喜爱歌手第一名:张学友。应该说我下半年基本一直在听甚至基本只听Jacky的歌。18年国庆前夕也就是九月三十号我去咸阳观看了A CLASSIC TOUR 學友.經典世界巡迴演唱會——咸阳站的演出。终于圆了我的一个梦~
 歌单仅供参考,推荐给想尝试粤语歌的朋友,当然绝不仅仅只有这些,好歌太多太多。



版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者Leslie Tien和本文原始地址:
https://leslietien.blogspot.com/2019/01/2018.html