dangmingyang commented on issue #37014: URL: https://github.com/apache/shardingsphere/issues/37014#issuecomment-3495335026
> ShardingSphere does provide complete storage unit management functionality, and you can safely delete unavailable storage units through DistSQL. > > Root Cause Analysis > > ShardingSphere attempts to connect to all registered storage units during startup to detect database types. This occurs in the DatabaseTypeEngine.getStorageType() method. If the database corresponding to a storage unit is inaccessible, it will cause startup failure. > > Solution: Use UNREGISTER STORAGE UNIT > > ShardingSphere provides complete DistSQL syntax for managing storage units: > > Basic Syntax > > -- Delete a single storage unit UNREGISTER STORAGE UNIT storage_unit_name; > > -- Delete multiple storage units UNREGISTER STORAGE UNIT ds_0, ds_1; > > -- Safe deletion (delete if exists, no error if not exists) UNREGISTER STORAGE UNIT IF EXISTS storage_unit_name; > > Force Deletion Options > > If storage units are being used by rules, you can use the following options: > > -- Force deletion (ignore single table rules) UNREGISTER STORAGE UNIT storage_unit_name IGNORE SINGLE TABLES; > > -- Force deletion (ignore broadcast table rules) UNREGISTER STORAGE UNIT storage_unit_name IGNORE BROADCAST TABLES; > > -- Force deletion (ignore single table and broadcast table rules) UNREGISTER STORAGE UNIT storage_unit_name IGNORE SINGLE, BROADCAST TABLES; > > Specific Operation Steps > > 1. Start ShardingSphere-Proxy: Even with connection errors, Proxy usually starts and accepts management connections > 2. Connect to Proxy: Use a MySQL client to connect to Proxy's management port > 3. Execute DistSQL commands: > -- View current storage units > SHOW STORAGE UNITS; > > -- Delete unavailable storage unit UNREGISTER STORAGE UNIT IF EXISTS problem_storage_name; 4. Restart ShardingSphere-Proxy: After deleting the unavailable storage unit, restart should proceed normally > > Conclusion > > The issue you encountered is not a technical limitation but rather information asymmetry. ShardingSphere already provides complete storage unit lifecycle management functionality. You can safely delete unavailable storage unit configurations using the UNREGISTER STORAGE UNIT DistSQL command. When encountering such issues, it is recommended to first clean up unavailable configurations using this command, then restart the service. I deployed ShardingSphere-Proxy using Docker. When an error occurs due to the aforementioned issue, the ShardingSphere-Proxy container is not present, and I cannot connect to the Proxy using the MySQL command either. Is this caused by a certain configuration of mine not being enabled? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
