前言:
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]#