FYF
» HerBert
Toggle navigation
FYF
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
HCCDP
实验题
About Me
归档
标签
5、日常运维实验
无
2025-10-04 22:43:16
3
0
0
admin
# **GaussDB 日常运维实验** ## 实验目的 掌握数据库数据导入导出的方法,熟悉常见工具,能够根据不同场景选择合适的工具执行导入导出操作,掌握 TPOPS 管控界面的备份恢复操作及智能运维功能。 --- ## 一、实验环境准备 ### 步骤 1:查看实验环境信息 * 点击导航栏“眼睛”图标,查看 GaussDB 集中式数据库 + TPOPS 管控平台的访问信息。 ### 步骤 2:登录 ECS_01 服务器 ```bash ssh root@ECS_01_IP ``` ### 步骤 3:登录数据库 ```bash yum install -y wget su - Ruby source /home/Ruby/gauss_env_file gsql -d postgres -p 8000 -U root -W 实例密码 -r ``` --- ## 二、数据导入导出实验 ### 2.1 `\copy` 命令导入导出 #### 步骤 1:创建数据表 ```sql CREATE TABLE tpcds_reasons_copy ( name VARCHAR(20), tel VARCHAR(20), address VARCHAR(20) ); ``` #### 步骤 2:插入数据 ```sql insert into tpcds_reasons_copy values('A','111','aaa'); insert into tpcds_reasons_copy values('B','222','bbb'); insert into tpcds_reasons_copy values('C','333','ccc'); ``` #### 步骤 3:表数据导出 ```sql \copy tpcds_reasons_copy to '/home/Ruby/tpcds_reasons_copy.txt' WITH(format 'text',encoding "UTF8"); \q cd /home/Ruby/ cat tpcds_reasons_copy.txt ``` #### 步骤 4:查询结果集导出 ```sql gsql -d postgres -p 8000 -U root -W 实例密码 -r \copy (select * from tpcds_reasons_copy where name = 'B') to '/home/Ruby/tpcds_reasons_copy1.txt' WITH(format 'text',encoding "UTF8"); \q cd /home/Ruby/ cat tpcds_reasons_copy1.txt ``` #### 步骤 5:文本数据导入 ```sql gsql -d postgres -p 8000 -U root -W 实例密码 -r \copy tpcds_reasons_copy from '/home/Ruby/tpcds_reasons_copy.txt' WITH(format 'text',encoding "UTF8"); select * from tpcds_reasons_copy; \q ``` --- ### 2.2 `gs_dump` 导出数据 ```sql gsql -d postgres -p 8000 -U root -W 实例密码 -r CREATE DATABASE testdb ENCODING 'UTF8' template = template0; \c testdb CREATE TABLE tpcds_reasons ( name VARCHAR(20), tel VARCHAR(20), address VARCHAR(20) ); insert into tpcds_reasons values('A','111','aaa'); insert into tpcds_reasons values('B','222','bbb'); insert into tpcds_reasons values('C','333','ccc'); \q ``` ```bash gs_dump -U root -W 实例密码 -f /home/Ruby/testdb.tar -p 8000 testdb -F t ll /home/Ruby/testdb.tar ``` --- ### 2.3 `gs_restore` 导入数据 ```sql gsql -d postgres -p 8000 -U root -W 实例密码 -r CREATE DATABASE testdb2 ENCODING 'UTF8' template = template0; \q ``` ```bash gs_restore /home/Ruby/testdb.tar -p 8000 -d testdb2 -U root -W 实例密码 ``` ```sql gsql -d testdb2 -p 8000 -U root -W 实例密码 -r select * from tpcds_reasons; \q ``` --- ### 2.4 `gs_loader` 导入数据 #### 2.4.1 基本导入 ```bash cd ~ wget https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/20000743/GaussDB_driver.zip unzip GaussDB_driver.zip cd GaussDB_driver/Centralized/Kylinv10_arm_64/ tar -xzvf GaussDB-Kernel_505.2.0_Kylin_64bit_Gsql.tar.gz source gsql_env.sh ``` ```sql gsql -d postgres -p 8000 -U root -W 实例密码 -r CREATE USER loader_user WITH PASSWORD 'loader_user@123'; GRANT ALL ON FUNCTION copy_error_log_create() TO loader_user; GRANT ALL ON FUNCTION copy_summary_create() TO loader_user; GRANT ALL ON SCHEMA public TO loader_user; SELECT copy_error_log_create(); SELECT copy_summary_create(); \c - loader_user CREATE TABLE loader_tbl ( ID NUMBER, NAME VARCHAR2(20), CON VARCHAR2(20), DT DATE ); \q ``` 控制文件 `loader.ctl`: ```ctl LOAD DATA truncate into table loader_user.loader_tbl WHEN (2:2) = ',' fields terminated by ',' trailing nullcols ( id integer external, name char(32), con ":id || '-' || :name", dt date ) ``` 数据文件 `data.csv`: ``` 1,OK,,2007-07-8 2,OK,,2008-07-8 3,OK,,2009-07-8 4,OK,,2007-07-8 43,DISCARD,,2007-07-8 ,,, 32,DISCARD,,2007-07-8 a,ERROR int,,2007-07-8 8,ERROR date,,2007-37-8 ,,,, , 8,ERROR fields,,2007-37-8 ,,, 5,OK,,2021-07-30 ``` 执行: ```bash gs_loader -d postgres -p 8000 -U loader_user -W loader_user@123 control=/home/Ruby/loader.ctl guc_param=guc.txt data=/home/Ruby/data.csv discard=loader.dis bad=loader.bad errors=10 ``` 查询结果: ```sql gsql -d postgres -p 8000 -U loader_user -W loader_user@123 -r select * from loader_user.loader_tbl; ``` #### 2.4.2 `position` 特性 控制文件 `loader_position.ctl`: ```ctl LOAD DATA truncate into table loader_user.loader_tbl_position trailing nullcols ( id position(1:4) integer external, name position(5:6) char(32) ) ``` 数据文件 `data_position.csv`: ``` 1001aa 1002bb 1003cc 2002dd 2023zz ``` 执行: ```bash gs_loader -d postgres -p 8000 -U loader_user -W loader_user@123 control=/home/Ruby/loader_position.ctl data=/home/Ruby/data_position.csv discard=loader.dis bad=loader.bad errors=10 ``` --- #### 2.4.3 表达式特性 控制文件 `loader_expr.ctl`: ```ctl LOAD DATA truncate into table loader_user.loader_tbl_expr fields terminated by ',' trailing nullcols ( id integer external, name char(32) "trim(:name)", address char(8) "replace(:address, ':', '-')", money integer external "case when :money<1000 then 0 else :money-1000 end" ) ``` 数据文件 `data_expr.csv`: ``` 1001,aa,GD:SZ,2000 1002, bb,GD:DG,999 1003,cc ,HB:WH,1000 ``` 执行: ```bash gs_loader -d postgres -p 8000 -U loader_user -W loader_user@123 control=/home/Ruby/loader_expr.ctl data=/home/Ruby/data_expr.csv discard=loader.dis bad=loader.bad errors=10 ``` --- ## 三、备份恢复实验(TPOPS) 1. 登录 TPOPS,绑定存储设备。 2. 进入“备份恢复”控制台,修改自动备份策略。 3. 创建手动备份、删除手动备份。 4. (可选)由备份恢复实例。 --- ## 四、智能运维实验 * **诊断优化**:异常诊断、巡检报告、SQL诊断(模拟慢 SQL:`select pg_sleep(300);`)、慢 SQL 报告、性能报告(WDR 报告)。 * **日志分析**:设置采集日志范围,采集并下载日志。 * **参数管理**: ```sql show autoanalyze; -- 修改为 on show max_connections; -- 修改为 1500(需重启实例) ```
上一篇:
5、redo管理
下一篇:
5、查看各种数据库对象的DDL语句
0
赞
3 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网