linuxpg命令详解 linux命令gpasswd( 二 )


PG状态为inconsistent时,说明PG中存在对象不一致的情况 。有可能时某个OSD磁盘损坏 , 或者磁盘上的数据发生静默错误 。
下面手动构造一个PG数据损坏的例子,并修复它 。
如果 ceph pg repair {pgid} 命令无法修复PG,可以使用ceph-objectstore-tool导入整个PG的方式 。
参考链接:
构造故障
使用ceph-objectstore-tool修复
上述介绍了重启OSD的方法来解决集群故障,但有时会遇到OSD down却无法重启的状况 。
遇到以上问题,有以下三种方案:
下面给出手动删除OSD再重新创建OSD的例子:
重建OSD需要注意的是,如果你的集群中对crush map做了特别定制,那么还需要去检查crush map 。
在OSD恢复过程中,可能会影响集群对外提供的io服务 。这里给出以下可修改配置 。
为了避免pg开始迁移后造成较大的压力导致osd挂掉,先在配置文件global中写入如下配置
磁盘恢复速度配置,其实默认的速度已经比较写了,如果想要加快迁移速度,可以尝试调制下列参数
附上配置操控命令
一般来说,集群三副本的情况下不太可能出现PG丢失的情况,如果一旦出现了 , 那也就意味着这丢失的数据无法找回 。
注意:不要使用单副本的集群 。
出现“1 pools have many more objects per pg than average”警告时,说明集群中某个pool的PG数量配置过少 , 其每个PG承载的对象高于集群平均PG承载对象10倍以上,最简单的解决方法就是增加pool的pg数即可 。
linux怎么用命令登陆postgres(1)用户实用程序:
createdb 创建一个新的PostgreSQL的数据库(和SQL语句:CREATE DATABASE 相同)
createuser 创建一个新的PostgreSQL的用户(和SQL语句:CREATE USER 相同)
dropdb 删除数据库
dropuser 删除用户
pg_dump 将PostgreSQL数据库导出到一个脚本文件
pg_dumpall 将所有的PostgreSQL数据库导出到一个脚本文件
pg_restore 从一个由pg_dump或pg_dumpall程序导出的脚本文件中恢复PostgreSQL数据库
psql 一个基于命令行的PostgreSQL交互式客户端程序
vacuumdb 清理和分析一个PostgreSQL数据库 , 它是客户端程序psql环境下SQL语句VACUUM的shell脚本封装,二者功能完全相同
(2)系统实用程序
initdb 创建一个用于存储数据库的PostgreSQL数据目录,并创建预定义的模板数据库template0和template1,生成共享目录表 catalog;此程序通常只在安装PostgreSQL时运行一次
initlocation 创建一个辅助的PostgreSQL数据库存储区域
ipcclean 从停止的PostgreSQL服务器中清除共享内在和孤立信号标志
pg_ctl 启动、停止、重启PostgreSQL服务(比如:pg_ctl start 启动PostgreSQL服务,它和service postgresql start相同)
pg_controldata 显示PostgreSQL服务的内部控制信息
postgres PostgreSQL单用户模式的数据库服务
postmaster PostgreSQL多用户模式的数据库服务
4.这里面最重要的是psql这个客户端程序最为重要 。启用客户端程序psql的方法是:
切换到PostgreSQL预定义的数据库超级用户postgres,启用客户端程序psql,并连接到自己想要的数据库 , 比如说:
psql template1
出现以下界面,说明已经进入到想要的数据库,可以进行想要的操作了 。
template1=#
5.在数据库中的一些命令:
template1=# \l 查看系统中现存的数据库
template1=# \q 退出客户端程序psql
template1=# \c 从一个数据库中转到另一个数据库中,如template1=# \c sales 从template1转到sales
template1=# \dt 查看表
template1=# \d 查看表结构
template1=# \di 查看索引

推荐阅读