oracle 数据到 mysql数据库乱码问题吗_实际业务开发中,解决Oracle数据库乱码问题和服务器数据库扩容详细步骤...

前言:

1. 本文的主要内容为数据库开发记录,包含的业务数据部分占比较大。

2. 此外由于笔记中有一部分内容的Markdown格式符号不能被知乎的编辑器识别,看起来比较奇怪,还请各位读者见谅。

3. 由于实际操作较多,即使我已经有选择地删去了部分代码,文中包含了一些我认为关键的代码,希望能抛砖引玉,给各位带来参考意义。

一、必要环境安装与简单问题解决

首先解决连接数据库查询到中文数据异常的问题。编码格式可能造成两个后果:

1、中文数据显示为乱码;

2、一个汉字占据的空间异常。

中文乱码效果如下:

汉字占据的空间异常问题如下:

下面描述在插入表数据的时候发现,一个中文汉字居然要占3个字节,问了周围的同事,他们都说,一个汉字占2个字节,没毛病。网上查了一下,说是编码格式的问题,网络搜索结果的链接如下:

于是又找了很多改编码格式的教程

总结方法如下:

pl/sql developer编码格式设置

一、pl/sql developer 中文字段显示乱码

原因是:数据库的编码格式和pl /sql developer工具的编码格式不统一。

二、查看和修改oracle数据库字符集:

select userenv('language') from dual;

查询结果:

SIMPLIFIED CHINESE_CHINA.AL32UTF8

--修改oracle数据库字符集:

一、在终端工具输入SQLplus命令,连接成功后执行下面的命令

sql> conn / as sysdba;//我的电脑不能用这种方式登录,于是用下面的方式登录sysDBA

SQL> conn sys/password as sysdba

sql> shutdown immediate;

database closed.

database dismounted.

oracle instance shut down.

sql> startup mount;

database mounted.

sql> alter system enable restricted session;

system altered.

sql> alter system set job_queue_processes=0;

system altered.

sql> alter system set aq_tm_processes=0;

system altered.

sql> alter database open;

database altered.

二、修改字符集

sql> alter database character set internal_use JA16SJIS;//这里要改成:

sql> alter database character setZHS16GBK ;

ALTER DATABASE CHARACTER SET ZHS16GBK

*

ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

Database altered.

SQL> select * from v$nls_parameters;

19 rows selected.

三、重启数据库,使修改生效。

重启检查是否更改完成:

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

SQL> select * from v$nls_parameters;

19 rows selected.

+++++++++++++++++++++++++++++++++

# 重启数据库,使修改生效。

sql> shutdown immediate;

sql> startup;

附上网上找的教程:

pl/sql developer编码格式设置

二、业务数据表和相关记录

# 一、 2I2C报表开发

目前2i2c的报表已经进入了数据开发阶段

前置的数据配置表为:

汇总过程:tb_sp_qry_wcost_total_TI_IQ

汇总表: tb_qry_wcost_total_ti

结果表: tb_rpt_val_gpm_2i2c

存储过程:tb_sp_rpt_val_gpm_2i2c

视图: v_entity_dim

***

**需要重点处理的问题:**

1. 数据的类型

- 省分

- 本地网

- 省本部

- 分档

2. 数据的主体

- 运营

- 云数据

- 新时空等

3. 报表样式的固定

- 主要是要确定都要显示==哪些主体==的数据

---

考虑是否需要新增存储过程来实现

> sp_rpt_val_gpm_2i2c

# 二、物联网报表的开发

1. 方案一:通过新的报表工具

1. 建立新的汇总数据生成过程

2. 设计展现主体

2. 方案二:通过旧的报表工具

1. 建立新的汇总数据生成过程

2. 配置报表的表样

三、扩容操作的详细操作步骤

等导入业务数据之后,发现服务器的硬盘空间不足,解决办法:扩容

操作流程如下:

连接上服务器,用命令查看目前剩余空间

Press Ctrl+C to cancel or Enter to reconnect immediately.

Reconnecting in 1 seconds...

Last login: Mon Apr 20 13:37:06 2020 from 192.168.161.1

[centos@localhost ~]$ df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/cl-root 17G 14G 3.3G 82% /

devtmpfs 479M 0 479M 0% /dev

tmpfs 495M 100K 495M 1% /dev/shm

查看目前的挂载信息

[centos@localhost ~]$

[centos@localhost ~]$ lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

fd0 2:0 1 4K 0 disk

sda 8:0 0 40G 0 disk

├─sda1 8:1 0 1G 0 part /boot

└─sda2 8:2 0 19G 0 part

├─cl-root 253:0 0 17G 0 lvm /

└─cl-swap 253:1 0 2G 0 lvm [SWAP]

sr0 11:0 1 1024M 0 rom

[centos@localhost ~]$

遇到服务器权限问题示例:

[centos@localhost ~]$

[centos@localhost ~]$ fdisk /dev/sda

fdisk: 打不开 /dev/sda: 权限不够

[centos@localhost ~]$

[centos@localhost ~]$

授权,并打开分区信息

[centos@localhost ~]$

[centos@localhost ~]$ fdisk /dev/sda

fdisk: 打不开 /dev/sda: 权限不够

[centos@localhost ~]$

[centos@localhost ~]$

[centos@localhost ~]$ su root

密码:

[root@localhost centos]#

[root@localhost centos]#

[root@localhost centos]# fdisk /dev/sda

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

命令(输入 m 获取帮助):n

Partition type:

p primary (2 primary, 0 extended, 2 free)

e extended

Select (default p): p

分区号 (3,4,默认 3):

起始 扇区 (41943040-83886079,默认为 41943040):

将使用默认值 41943040

Last 扇区, +扇区 or +size{K,M,G} (41943040-83886079,默认为 83886079):+20G

值超出范围。

Last 扇区, +扇区 or +size{K,M,G} (41943040-83886079,默认为 83886079):+19.5G

不支持的后缀:“.5G”。

支持:10^N: KB (千字节), MB (兆字节), GB (吉字节)

2^N: K (约千字节), M (约兆字节), G (约吉字节)

Last 扇区, +扇区 or +size{K,M,G} (41943040-83886079,默认为 83886079):+20377M

分区 3 已设置为 Linux 类型,大小设为 19.9 GiB

命令(输入 m 获取帮助):w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

正在同步磁盘。

[root@localhost centos]#

查看分区信息

[root@localhost centos]#

[root@localhost centos]# partprobe

[root@localhost centos]#

[root@localhost centos]#

[root@localhost centos]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

fd0 2:0 1 4K 0 disk

sda 8:0 0 40G 0 disk

├─sda1 8:1 0 1G 0 part /boot

├─sda2 8:2 0 19G 0 part

│ ├─cl-root 253:0 0 17G 0 lvm /

│ └─cl-swap 253:1 0 2G 0 lvm [SWAP]

└─sda3 8:3 0 19.9G 0 part

sr0 11:0 1 1024M 0 rom

[root@localhost centos]#

[root@localhost centos]#

创建分区

[root@localhost centos]# lvm

lvm> pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created.

lvm> pvdisplay

--- Physical volume ---

PV Name /dev/sda2

VG Name cl

PV Size <19.00 GiB / not usable 3.00 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 4863

Free PE 0

Allocated PE 4863

PV UUID xTpTLX-vpbQ-1ngV-ruw6-mVcl-Nd0y-2bdhnN

扩容操作1阶段

lvm> vgdisplay

--- Volume group ---

VG Name cl

System ID

Act PV 1

Alloc PE / Size 4863 / <19.00 GiB

Free PE / Size 0 / 0

VG UUID SWGnyX-ezyE-K5KM-2QsR-zq4l-2X2Q-MgQnrK

lvm>

lvm> vgextend centos /dev/sda3

Volume group "centos" not found

Cannot process volume group centos

lvm>

lvm> vgextend cl /dev/sda3

Volume group "cl" successfully extended

lvm>

lvm> vgdisplay

--- Volume group ---

VG Name c

Cur PV 2

Act PV 2

VG Size 38.89 GiB

PE Size 4.00 MiB

Total PE 9957

Alloc PE / Size 4863 / <19.00 GiB

Free PE / Size 5094 / <19.90 GiB

VG UUID SWGnyX-ezyE-K5KM-2QsR-zq4l-2X2Q-MgQnrK

lvm>

扩容2阶段

lvm> lvextend -l +100%FREE /dev/centos/root

Volume group "centos" not found

Cannot process volume group centos

lvm>

lvm> lvextend -l +100%FREE /dev/cl/root

Size of logical volume cl/root changed from <17.00 GiB (4351 extents) to 36.89 GiB (9445 extents).

Logical volume cl/root successfully resized.

lvm>

lvm> xfs_growfs /dev/cl/root

No such command 'xfs_growfs'. Try 'help'.

lvm>

lvm> xfs_growfs /dev/centos/root

No such command 'xfs_growfs'. Try 'help'.

lvm>

lvm> exit

Exiting.

[root@localhost centos]#

扩容最后阶段

[root@localhost centos]# xfs_growfs /dev/cl/root

meta-data=/dev/mapper/cl-root isize=512 agcount=4, agsize=1113856 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

data = bsize=4096 blocks=4455424, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal bsize=4096 blocks=2560, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

data blocks changed from 4455424 to 9671680

[root@localhost centos]#

[root@localhost centos]#

查看扩容完成结果

[root@localhost centos]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/cl-root 37G 14G 24G 38% /

devtmpfs 479M 0 479M 0% /dev

tmpfs 495M 100K 495M 1% /dev/shm

tmpfs 495M 20M 475M 4% /run

tmpfs 495M 0 495M 0% /sys/fs/cgroup

/dev/sda1 1014M 174M 841M 18% /boot

tmpfs 99M 20K 99M 1% /run/user/1000

overlay 37G 14G 24G 38% /data/docker/overlay2/93ee455f0afb37f4f3f3d440ded92d0163c7b4baffc792e55c0b494e1bd7a6d9/merged

[root@localhost centos]#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值