2017-09-07 5 views
1

5.6.1 sonarqube 인스턴스를 6.5로 업그레이드하려고하는데, Oracle 데이터베이스에서 linux로 실행된다.5.6.1에서 6.5로 업그레이드 할 때 데이터베이스 마이그레이션이 매우 느리다.

다음 플러그인을 추가했습니다.

  • 그루비 1.5
  • LDAP 2.2.0.608

오라클 드라이버는 JDK가 1.8.0_144

과정 (들)를 시작하지만, 웹이다 ojdbc6-11.2.0.2.0입니다 하나는 단순히 멈 춥니 다. 나는 추적 로깅을 추가

2017.09.07 22:07:02 TRACE web[][o.s.s.p.Platform] level1 started | time=2286ms 
2017.09.07 22:07:02 TRACE web[][o.s.s.p.Platform] level2 configured | time=33ms 

다음 예를 들어 마이그레이션이 시작되면이 같은 속도 저하가 계속

2017.09.07 23:47:53 TRACE web[][o.s.c.p.ComponentContainer] org.sonar.server.platform.db.migration.history.MigrationHistoryTableImpl started | time=2139938ms 
2017.09.08 00:27:00 TRACE web[][o.s.c.p.ComponentContainer] org.sonar.server.platform.db.migration.history.MigrationHistoryImpl started | time=2347061ms 
2017.09.08 00:27:00 TRACE web[][sql] time=4ms | sql=select version from schema_migrations 
2017.09.08 00:27:00 TRACE web[][sql] time=2ms | sql=select version from schema_migrations 
2017.09.08 00:27:00 WARN web[][o.s.s.p.DatabaseServerCompatibility] Database must be upgraded. Please backup database and browse /setup 

때까지 아무것도

2017.09.08 17:06:45 INFO web[][o.s.s.p.d.m.v.v.DropRelatedDashboardTables] Removing tables [widget_properties, widgets, active_dashboards, dashboards] 
2017.09.08 17:06:45 TRACE web[][sql] time=35ms | sql=BEGIN EXECUTE IMMEDIATE 'DROP SEQUENCE widget_properties_seq'; EXCEPTION WHEN OTHERS THEN  IF SQLCODE != -2289 THEN  RAISE;  END IF; END; 
2017.09.08 17:06:45 TRACE web[][sql] time=19ms | sql=BEGIN EXECUTE IMMEDIATE 'DROP TRIGGER widget_properties_idt'; EXCEPTION WHEN OTHERS THEN  IF SQLCODE != -4080 THEN  RAISE;  END IF; END; 
2017.09.08 17:06:45 TRACE web[][sql] time=87ms | sql=DROP TABLE widget_properties 
2017.09.08 17:06:45 TRACE web[][sql] time=12ms | sql=BEGIN EXECUTE IMMEDIATE 'DROP SEQUENCE widgets_seq'; EXCEPTION WHEN OTHERS THEN  IF SQLCODE != -2289 THEN  RAISE;  END IF; END; 
2017.09.08 17:06:45 TRACE web[][sql] time=16ms | sql=BEGIN EXECUTE IMMEDIATE 'DROP TRIGGER widgets_idt'; EXCEPTION WHEN OTHERS THEN  IF SQLCODE != -4080 THEN  RAISE;  END IF; END; 
2017.09.08 17:06:45 TRACE web[][sql] time=43ms | sql=DROP TABLE widgets 
2017.09.08 17:06:45 TRACE web[][sql] time=11ms | sql=BEGIN EXECUTE IMMEDIATE 'DROP SEQUENCE active_dashboards_seq'; EXCEPTION WHEN OTHERS THEN  IF SQLCODE != -2289 THEN  RAISE;  END IF; END; 
2017.09.08 17:06:45 TRACE web[][sql] time=27ms | sql=BEGIN EXECUTE IMMEDIATE 'DROP TRIGGER active_dashboards_idt'; EXCEPTION WHEN OTHERS THEN  IF SQLCODE != -4080 THEN  RAISE;  END IF; END; 
2017.09.08 17:06:45 TRACE web[][sql] time=64ms | sql=DROP TABLE active_dashboards 
2017.09.08 17:06:45 TRACE web[][sql] time=12ms | sql=BEGIN EXECUTE IMMEDIATE 'DROP SEQUENCE dashboards_seq'; EXCEPTION WHEN OTHERS THEN  IF SQLCODE != -2289 THEN  RAISE;  END IF; END; 
2017.09.08 17:06:45 TRACE web[][sql] time=19ms | sql=BEGIN EXECUTE IMMEDIATE 'DROP TRIGGER dashboards_idt'; EXCEPTION WHEN OTHERS THEN  IF SQLCODE != -4080 THEN  RAISE;  END IF; END; 
2017.09.08 17:06:45 TRACE web[][sql] time=37ms | sql=DROP TABLE dashboards 
2017.09.08 17:06:45 TRACE web[][sql] time=6ms | sql=insert into schema_migrations(version) values (?) | params=1420 
2017.09.08 17:06:45 INFO web[][DbMigrations] #1420 'Drop tables related to dashboards': success | time=8515237ms 
2017.09.08 17:06:45 INFO web[][DbMigrations] #1421 'Drop tables related to measure filters'... 

즉, 작업의 상당수가 나타나지 볼 수있다 수행 할 시간이 걸리는 경우

이렇게 느린 성능을 유발할 수있는 요인은 무엇입니까? 로그에 실제 쿼리 실행 시간이 낮을 때 수행중인 작업에 대한 아이디어를 제공 할 힌트가 없습니다.

+1

먼저 5.6.6으로 업그레이드 할 수 있습니다. 그래도 도움이되지 않으면 6.0, 6.1 ... 6.5 - 하나씩 업그레이드하십시오. – slartidan

답변

1

이 문제의 근본 원인이 심하게 데이터 사전 쿼리를 수행하는 것으로 밝혀졌다, 하나의 예는이 sonarqube 5.6에서 볼되지 않았습니다

SELECT NULL AS table_cat, 
    o.owner AS table_schem, 
    o.object_name AS table_name, 
    o.object_type AS table_type, 
    NULL AS remarks 
FROM all_objects o 
WHERE  o.owner LIKE :1 ESCAPE '/' 
    AND o.object_name LIKE :2 ESCAPE '/' 
    AND o.object_type IN ('xxx', 'TABLE') 
ORDER BY table_type, table_schem, table_name 

같은 쿼리이었다.