公司资源紧张,开始也没考虑那么多,把jira和confluence 装在了一台虚拟机上!

意外断电,虚拟机起来后,发现数据库起不来了,好好绝望啊!!!

cat /var/log/mysqld.log  看看启动日志

2019-06-22T17:08:16.077096Z 0 [Note] Binlog end
2019-06-22T17:08:16.078068Z 0 [Note] /usr/sbin/mysqld: Shutdown complete

2019-06-22T17:10:46.135007Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-06-22T17:10:46.143652Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.26) starting as process 6164 ...
2019-06-22T17:10:46.151898Z 0 [Note] InnoDB: PUNCH HOLE support available
2019-06-22T17:10:46.151926Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-06-22T17:10:46.151931Z 0 [Note] InnoDB: Uses event mutexes
2019-06-22T17:10:46.151936Z 0 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
2019-06-22T17:10:46.151952Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-06-22T17:10:46.151959Z 0 [Note] InnoDB: Using Linux native AIO
2019-06-22T17:10:46.152862Z 0 [Note] InnoDB: Number of pools: 1
2019-06-22T17:10:46.153235Z 0 [Note] InnoDB: Using CPU crc32 instructions
2019-06-22T17:10:46.160008Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2019-06-22T17:10:46.194779Z 0 [Note] InnoDB: Completed initialization of buffer pool
2019-06-22T17:10:46.205178Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2019-06-22T17:10:46.223128Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2019-06-22T17:10:46.224923Z 0 [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 2340764309 and the end 2340764160.
2019-06-22T17:10:46.224938Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-06-22T17:10:46.830615Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-06-22T17:10:46.830691Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-06-22T17:10:46.830713Z 0 [ERROR] Failed to initialize builtin plugins.
2019-06-22T17:10:46.830726Z 0 [ERROR] Aborting

百度了下, mysql 安装目录下: /var/lib/mysql

有三个文件  ibdata1  ib_logfile0 ib_logfile1 ,删了就能启动了 !

提前备份了三个文件,然后删除后启动, 数据库是启动了,但 数据全都丢了 !!! 还好提前备份了 !!坑

搜了一大堆方法,都不好用。

 

这个好用:

vi /etc/my.cnf   增加一条记录: innodb_force_recovery=6

重启数据库,恢复模式启动。 数据库启动ok了, 数据也看到 。

但是这样启动,jira confluence 启动后,会报错,不能使用。

继续:

重新整了个数据库(之前有不用的虚拟机,现场的mysql有),把上面启动的数据库的jira ,confluence 库 整个导入到新的mysql数据库。

1、恢复jira

 jira 数据库连接: /var/atlassian/application-data/jira/dbconfig.xml,如下:

 修改数据库,指向新的数据库。

库恢复后:jira启动报错:

提示如下错误:PID file found but no matching process was found. Stop aborted.

发现jira安装目录的work文件夹下,pid号无对应进程

root@haier:/opt/jira/work# cat catalina.pid
12625
root@haier:/opt/jira/work# netstat -anp |grep 12625

刚才把catalina.pid文件直接删除,再执行start-jira.sh,jira就可以打开了。

 

再次重启,又出错了:

Unable to clean the cache directory: /home/atlassian/data/jira/plugins/.osgi-plugins/felix caused by: Unable to delete file: /home/atlassian/data/jira/plugins/.osgi-plugins/felix/felix-cache/bundle186/version0.0/revision.location

参考这里:https://www.cnblogs.com/whylaughing/p/7513620.html
报错原因可以推断为由于Tomcat服务的不正确关闭触发了OSGI插件的不一致导致。
解决方法如下:

1、首先,需要关闭jira的tomcat服务,命令如下:

1)查询进程ps -ef|grep java 或ps -ef|grep tomcat

2)删除进程(关闭服务)kill –9 xxxx  (xxxx为进程id)

2、先定位到指定路径,用到命令为cd和ls

1)发现一个问题:指定路径下无看到.osgi-plugins文件。原因:其为隐藏文件,采取命令ls –a即可查看文件首字符为.(英文句号)的隐藏文件

3、定位到指定路径后删除目标文件,命令如下rm -if felix-cache

4、重启jira服务即可

ok 到这里 jira  恢复完成。

 

下面恢复confluence , 这里 过程该一样。但是 还是遇到了好几个坑。

confluence 修改数据库连接

修改/var/atlassian/application-data/confluence/confluence.cfg.xml

 

中间还出了个错:

The innodb_system data file 'ibdata1' must be writable

这个简单:字面意思:’ibdata1必须可写
那么解决方案自然是更改对应权限  chmod -R 777 /var/lib/mysql

 

中间还参考了:https://blog.csdn.net/mydriverc2/article/details/79074080

MySQL数据库,当innodb表空间损坏时候,尝试启动数据库不成功,可以使用innodb_force_recovery参数进行强制启动

在主配置文件my.cnf中添加
innodb_force_recovery=6

****************************

innodb_force_recovery参数解释:

 

innodb_force_recovery影响整个InnoDB存储引擎的恢复状况,默认值为0,表示当需要恢复时执行所有的恢复操作。
当不能进行有效的恢复操作时,mysql有可能无法启动,并记录下错误日志。

innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。
当设置参数值大于0后,可以对表进行select,create,drop操作,但insert,update或者delete这类操作是不允许的。

1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页
2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash
3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。
4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。
5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。
6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。

***************************


修复表空间受损的表:
数据起来后,innodb类型的表不能写操作,但可以读,此时对表做check,查找到异常的表,读取出来,导入到myisam表里面,drop原表
然后在my.cnf中去掉innodb_force_recovery的设置,重启mysql
把myisam表转成innodb表;

 

confluence日志报错处理

Mon Jul 01 05:18:55 PDT 2019 WARN: Establishing SSL connection without server's identity verification is not recommended.
According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option
isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'.
You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

原因:MySQL5.7.6以上版本要默认要求使用SSL连接,如果不使用需要通过设置useSSL=false来声明。

解决方案:在mysql连接字符串url中加入useSSL=true或者false即可,如下:
# Confluence找到配置文件/var/atlassian/confluence/confluence.cfg.xml修改mysql连接字符串如下:
jdbc:mysql://mysql/confluence?useUnicode=true&characterEncoding=utf8&useSSL=false
路径地址: vi /var/atlassian/application-data/confluence/confluence.cfg.xml

# Jira找到配置文件/var/atlassian/jira/dbconfig.xml修改mysql连接字符串如下:
jdbc:mysql://address=(protocol=tcp)(host=mysql)(port=3306)/jira?useUnicode=true&characterEncoding=UTF8&sessionVariables=default_storage_engine=InnoDB&useSSL=false

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐