728x90
반응형

개요

Confluence버전이 오래 된 버전을 업그레이드합니다.

Confluence 5.10.8 → Confluence 7.3.5

또한, 4byte아이콘을 대응하기 때문에 MySQL버전을 5.6에서 5.7으로 업그레이드합니다(utf8->utf8mb4).

 

준비 작업

소프트웨어 다운로드:

https://www.atlassian.com/ja/software/confluence/download에서 아래의 Confluence버전을 다운로드한다
atlassian-confluence-7.3.5.tar.gz

https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.33/bin/apache-tomcat-9.0.33.tar.gz에서 Tomcat을 다운로드한다
새 버전의 설치 파일을 컨플루언스 서버 (/home/infra/)에 업로드 또는 wget 등

https://dev.mysql.com/downloads/connector/j/5.1.html에서 아래의 mysql드라이버를 다운로드한다
mysql-connector-java-5.1.48.tar.gz

다운로드 파일을 해제하고, mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar를

 컨플루언스 서버

(/home/infra/)에 전송

 

Confluence버전 업

  • 서비스 정지
    systemctl stop nginx
    systemctl stop tomcat
    systemctl stop mysqld
  • 백업으로 AMI작성
  • Confluence버전 업
    cd /home/infra
  • tar zxvf atlassian-confluence-7.3.5.tar.gz
    chmod 775 atlassian-confluence-7.3.5/confluence
    chown tomcat: -R atlassian-confluence-7.3.5/confluence
    mv /opt/apache-tomcat-8.0.47/webapps/confluence /tmp/
    mv atlassian-confluence-7.3.5/confluence /opt/apache-tomcat-8.0.47/webapps/
  • 설정 파일 변경
    vi /opt/apache-tomcat-8.0.47/webapps/confluence/WEB-INF/classes/confluence-init.properties
- # confluence.home=/var/data/confluence/
+ confluence.home=/var/data/confluence/
  • MySQL Connector파일 갱신
  • chown tomcat: mysql-connector-java-5.1.48-bin.jar
    mv mysql-connector-java-5.1.48-bin.jar /opt/apache-tomcat-8.0.47/webapps/confluence/WEB-INF/lib/
  • /etc/my.cnf설정 변경
    transaction-isolation=READ-COMMITTED를 추가하는

  • Tomcat버전 업
    tar zxvf apache-tomcat-9.0.33.tar.gz
    mv /opt/apache-tomcat-8.0.47/bin /tmp
    mv /opt/apache-tomcat-8.0.47/lib /tmp
    mv apache-tomcat-9.0.33/bin /opt/apache-tomcat-8.0.47/
    mv apache-tomcat-9.0.33/lib /opt/apache-tomcat-8.0.47/
    chown -R tomcat: /opt/apache-tomcat-8.0.47/bin /opt/apache-tomcat-8.0.47/lib
    mv /opt/apache-tomcat-8.0.47 /opt/apache-tomcat-9.0.33
    vi /etc/systemd/system/tomcat.service
Apache Tomcat 8
↓
Apache Tomcat 9
  
apache-tomcat-8.0.47
↓
apache-tomcat-9.0.33
  • 서비스 기동
    systemctl start mysqld
    systemctl start tomcat
    systemctl start nginx
  • 관리 화면에서의 설정
  • 포털  페이지 접속
    -"공동 편집"을 비활성
    -"앱을 관리"중의 활성화된 앱의 버전을 업데이트

MySQL버전 업(5.6→ 5.7)

  • 서비스 정지
    systemctl stop nginx
    systemctl stop tomcat
    systemctl stop mysqld

  • mysql5.6의 삭제
    rpm -qa | grep mysql
    rpm -e mysql57-community-release-el6-7.noarch
    rpm -e mysql-community-client-5.6.38-2.el6.x86_64 mysql-community-libs-5.6.38-2.el6.x86_64 mysql-community-common-5.6.38-2.el6.x86_64 mysql-community-server-5.6.38-2.el6.x86_64 --nodeps

  • mysql5.7설치
    yum localinstallhttps://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    yum install mysql-community-server
    yum install mysql-community-libs-compat
    mv /etc/my.cnf.rpmsave /etc/my.cnf

  • percona-x
    rpm -e percona-xtrabackup-22-2.2.13-1.el7.x86_64
    yum installhttps://repo.percona.com/yum/percona-release-latest.noarch.rpm
    yum install percona-xtrabackup-24

  • my.cnf의 설정 변경
    아래의 옵션을 삭제
    innodb_support_xa
    innodb_use_sys_malloc
    아래의 옵션을 추가
    secure-file-priv = ""

  • mysql실행
    systemctl start mysqld

  • mysql테이블의 체크와 업그레이드
    mysql_upgrade -uroot -p

  • DB의 문자 코드를 utf8에서 utf8mb4로 변경
vi /etc/my.cnf
  character-set-server = utf8mb4
  collation-server = utf8mb4_bin
  
systemctl stop mysqld
systemctl start mysqld
 
ALTER DATABASE confluence CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

 

기존 테이블 컬럼의 문자 코드를 utf8에서 utf8mb4로 변경

SET global FOREIGN_KEY_CHECKS=0;
 
SELECT CONCAT('ALTER TABLE ', table_name, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;')
FROM information_schema.TABLES AS T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C
WHERE C.collation_name = T.table_collation
AND T.table_schema = 'confluence'
AND
(
    C.CHARACTER_SET_NAME != 'utf8mb4'
    OR
    C.COLLATION_NAME != 'utf8mb4_bin'
) INTO OUTFILE '/tmp/alter-tables.sql';
 
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET utf8mb4 COLLATE utf8mb4_bin', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'confluence'
AND DATA_TYPE = 'varchar'
AND
(
    CHARACTER_SET_NAME != 'utf8mb4'
    OR
    COLLATION_NAME != 'utf8mb4_bin'
) INTO OUTFILE '/tmp/alter-columns-1.sql';
 
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_bin', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'confluence'
AND DATA_TYPE != 'varchar'
AND
(
    CHARACTER_SET_NAME != 'utf8mb4'
    OR
    COLLATION_NAME != 'utf8mb4_bin'
) INTO OUTFILE '/tmp/alter-columns-2.sql';
 
mysql -uroot -p confluence < /tmp/alter-tables.sql
mysql -uroot -p confluence < /tmp/alter-columns-1.sql
mysql -uroot -p confluence < /tmp/alter-columns-2.sql
 
SET global FOREIGN_KEY_CHECKS=1;

 

Confluence DB설정 파일의 변경
vi /var/data/confluence/confluence.cfg.xml

- <property name="hibernate.connection.url">jdbc:mysql://localhost/confluence?useUnicode=true&amp;characterEncoding=utf8</property>
+ <property name="hibernate.connection.url">jdbc:mysql://localhost/confluence?useUnicode=true&amp;connectionCollation=utf8mb4_bin</property>

 

  • 서비스 기동
    systemctl restart mysqld
    systemctl start tomcat
    systemctl start nginx
  • 화면 확인
    컨플루언스 포털 접속하여 캐시 클리어:"캐시 관리"→"모두 클리어"
  • 인덱스 다시 구축:"관리"→"콘텐츠의 인덱스 작성"
728x90
300x250

'IT > Confluence' 카테고리의 다른 글

Confluence 7.4.5로 업그레이드  (0) 2021.08.17
Confluence mysql percona backup 설정  (0) 2021.08.12
Confluence Upgrade  (0) 2021.08.09
Confluence 서버 이관 및 재설정  (0) 2021.08.09
Confluence 설정  (0) 2021.08.09

+ Recent posts