数据库操作
连接本地数据库
| 1 | ksql -U system test -p 54321 | 
创建数据库时,主要是定义数据库的基本属性,如数据库名称、字符集、排序规则等,并不会直接指定模式。
模式是数据库内部用于组织对象的逻辑结构,在创建数据库时,会默认创建一个 public 模式。
| 1 | CREATE DATABASE bi_data_test WITH ENCODING = 'UTF8'; | 
查看库
| 1 | \l | 
选择库
| 1 | \c bi_data_test | 
选择库后可以查看模式和表
查看模式
| 1 | \dn | 
查看表
| 1 | # 查看所有的表 | 
删除库
| 1 | DROP DATABASE db01; | 
退出
| 1 | \q | 
本地导出导入
查找导出程序
| 1 | find / -name "sys_dump" | 
查找到的
/home/kingbase/ES/V9/KESRealPro/V009R003C011/Server/bin/sys_dump
/home/kingbase/ES/V9/KESRealPro/V009R003C011/ClientTools/bin/sys_dump
添加软链
| 1 | ln -s /home/kingbase/ES/V9/KESRealPro/V009R003C011/Server/bin/sys_dump /usr/bin/sys_dump | 
导出SQL
| 1 | sys_dump -U system -d abi -F p -f /data/dbbackup/abi_bak.sql | 
导出设置密码
| 1 | export KRAP_PGPASSWORD="your_password" | 
导入 SQL
连接
| 1 | ksql -U system test | 
创建数据库
| 1 | CREATE DATABASE xhkjedu_school_2 ENCODING 'UTF8' TEMPLATE template0; | 
退出 ksql
创建数据库完成后,使用 \l 命令查看数据库列表,可使用 \q 命令退出 ksql 交互界面。
导入
如果之前使用 sys_dump 导出的是 SQL 脚本,可以使用 psql 工具将其导入到目标数据库中。
| 1 | ksql -U system -d abi2 -f /data/dbbackup/abi_bak.sql | 
- -U username:指定数据库的用户名。
- -d dbname:指定要导入数据的数据库名称。
- -f /path/to/output.sql:指定要导入的 SQL 脚本文件的路径。
压缩与解压
我这使用归档方式导入总是失败,而SQL方式是没问题的。
所以可以采用SQL+压缩的方式,也能节省一半的空间。
压缩
| 1 | tar -czvf xhkjedu_school.sql.tar.gz xhkjedu_school.sql | 
解压
| 1 | tar -xzvf xhkjedu_school.sql.tar.gz | 
编写脚本及定时任务
在linux中,通常使用BASH脚本对需要执行的内容进行编写,加上定时执行命令crontab实现日志自动化生成。
以下代码功能就是针对mysql进行备份,配合crontab,实现备份的内容为7天内的每天的mysql数据库记录。
创建文件夹
| 1 | mkdir -p /data/cron/ | 
单个数据库备份
这种方式适合不同的数据库在不同的时间备份
创建文件
| 1 | /data/cron/kingbase_dump_script.sh | 
内容如下
| 1 | 
 | 
使脚本可运行
| 1 | chmod +x /data/cron/kingbase_dump_script.sh | 
如上代码主要含义如下:
- 首先设置各项参数,例如number最多需要备份的数目,备份路径,用户名,密码等。
- 执行mysqldump命令保存备份文件,并将操作打印至同目录下的log.txt中标记操作日志。
- 定义需要删除的文件:通过ls命令获取第九列,即文件名列,再通过head -1实现定义操作时间最晚的那个需要删除的文件。
- 定义备份数量:通过ls命令加上wc -l统计以sql结尾的文件的行数。
- 如果文件数超出限制数量,就删除最早创建的sql文件。
多个数据库备份
这种适合在某个时间开始逐个备份多个数据库。
| 1 | vi /data/cron/kingbase_dump_script.sh | 
内容如下:
| 1 | 
 | 
使脚本可运行
| 1 | chmod +x /data/cron/kingbase_dump_script.sh | 
备份测试
| 1 | /data/cron/kingbase_dump_script.sh | 
执行定时任务
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。
cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为crontab,是cron table的简写。
创建定时任务脚本文件
| 1 | vi /data/cron/kingbase_backup.cron | 
定期执行编写的定时任务脚本(记得先给shell脚本执行权限)
每天凌晨2点执行
| 1 | 00 02 * * * /data/cron/kingbase_dump_script.sh | 
注意:这操作是直接
替换该用户下的crontab,而不是新增
添加一行后一定要换行
随后使用crontab命令添加定时脚本
| 1 | crontab /data/cron/kingbase_backup.cron | 
再通过命令检查定时任务是否已创建:
| 1 | crontab -l |